题目:
对链表进行插入排序
示例 1:
输入: 4->2->1->3
输出: 1->2->3->4
示例 2:
输入: -1->5->3->4->0
输出: -1->0->3->4->5
思路:个人认为这就是对数组的排序与链表插入操作的结合,比大小,大的就接到后边,小的放前面
用dummy记录,然后用pre指向dummy可以让pre一直指向最前面的数字
(链表其实是我比较不擅长的东西,经常拆了又接上,然后就乱了)
代码:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def insertionSortList(self, head: ListNode) -> ListNode:
dummy = ListNode(0)
cur = head
while cur:
pre = dummy
while pre.next and pre.next.val <= cur.val:
pre = pre.next
temp = cur.next
cur.next = pre.next
pre.next = cur
cur = temp
return dummy.next
题目来自LeetCode第147题