Leetcode每日一题
题目链接: 147. 对链表进行插入排序
难度: 普通
解题思路: 设置一个新的链表,在原链表中找到一个比当前节点小的值,插入到新链表中,直至全部插完。
题解:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def insertionSortList(self, head: ListNode) -> ListNode:
new_head = ListNode(0)
node = head
while node:
pre = new_head
# 找到第一个比当前节点大的前驱
while pre.next and pre.next.val <= node.val:
pre = pre.next
tmp = node.next
node.next = pre.next
pre.next = node
node = tmp
return new_head.next