题目:
给定单个链表的头
head
,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。插入排序 算法的步骤:
- 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。
- 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
- 重复直到所有输入数据插入完为止。
来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
示例:
示例 1:
输入:head = [4,2,1,3]
输出:[1,2,3,4]
示例 2:
输入:head = [-1,5,3,4,0]
输出:[-1,0,3,4,5]
解法:
转成列表,列表排序,转成链表。
代码:
python# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def insertionSortList(self, head: Optional[ListNode]) -> Optional[ListNode]: nums = [] while head: nums.append(head.val) head = head.next nums.sort() head = point = ListNode(-5001) for num in nums: point.next = ListNode(num) point = point.next return head.next
力扣:147. 对链表进行插入排序(Python3)
恽劼恒2023-11-02 11:43
相关推荐
云空3 分钟前
《Python 与 SQLite:强大的数据库组合》九圣残炎12 分钟前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目lulu_gh_yu17 分钟前
数据结构之排序补充丫头,冲鸭!!!37 分钟前
B树(B-Tree)和B+树(B+ Tree)Re.不晚41 分钟前
Java入门15——抽象类凤枭香1 小时前
Python OpenCV 傅里叶变换测试杂货铺1 小时前
外包干了2年,快要废了。。艾派森1 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型小码的头发丝、1 小时前
Django中ListView 和 DetailView类的区别为什么这亚子2 小时前
九、Go语言快速入门之map