力扣:147. 对链表进行插入排序(Python3)

题目:

给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头

插入排序 算法的步骤:

  1. 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。
  2. 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
  3. 重复直到所有输入数据插入完为止。

来源:力扣(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
相关推荐
好运的阿财1 分钟前
OpenClaw工具拆解之subagents+gateway
python·机器学习·ai·ai编程·openclaw·openclaw 工具
a9511416423 分钟前
如何编写带默认值的SQL存储过程_简化前端调用接口设计
jvm·数据库·python
耿雨飞5 分钟前
Python 后端开发技术博客专栏 | 第 05 篇 Python 数据模型与标准库精选 -- 写出 Pythonic 的代码
开发语言·python
weixin_408717775 分钟前
如何用 CSS 动画与 animationend 事件实现循环渐进式圆点动画
jvm·数据库·python
2301_773553626 分钟前
如何自定义修改 Traccar Web 界面模板
jvm·数据库·python
m0_716430076 分钟前
CSS如何让响应式图片在容器内居中_利用background-position
jvm·数据库·python
djjdjdjdjjdj11 分钟前
如何利用 watchEffect 实现在线人数实时统计?Socket 与响应式结合
jvm·数据库·python
啦啦啦_999914 分钟前
0. 工具使用
python
执笔画流年呀18 分钟前
计算机是如何⼯作的
linux·开发语言·python
m0_7164300719 分钟前
HTML函数能否用触控板高效编写_触控硬件操作体验评估【汇总】
jvm·数据库·python