城乡建设厅官方网站,网站cms系统 开源,销售网站的技巧,新野网站建设题目#xff1a; 给定单个链表的头 head #xff0c;使用 插入排序 对链表进行排序#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的#xff0c;每次只移动一个元素#xff0c;直到所有元素可以形成一个有序的输出列表。每次迭代中#xff0c… 题目 给定单个链表的头 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] 解法 转成列表列表排序转成链表。 代码 # Definition for singly-linked list.
# class ListNode:
# def __init__(self, val0, nextNone):
# 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.nextnums.sort()head point ListNode(-5001)for num in nums:point.next ListNode(num)point point.nextreturn head.next