题目:
给定单个链表的头
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
相关推荐
地平线开发者10 分钟前
征程 6 工具链性能分析与优化 2|模型性能优化建议Duck Bro11 分钟前
数据结构:顺序表(动态顺序表)豆本-豆豆奶22 分钟前
最全面的Python重点知识汇总,建议收藏!Bosenya1225 分钟前
【信号处理】绘制IQ信号时域图、星座图、功率谱AI原吾43 分钟前
探索PyAV:Python中的多媒体处理利器DK221511 小时前
机器学习系列-----主成分分析(PCA)oliveira-time1 小时前
爬虫学习8正义的彬彬侠1 小时前
XGBoost算法Python代码实现昨天今天明天好多天1 小时前
【Python】解析 XML点云侠2 小时前
二维椭圆拟合算法及推导过程