题解 | #单链表的排序#
单链表的排序
https://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 the head node # @return ListNode类 # class Solution: def sortInList(self , head: ListNode) -> ListNode: # write code here arr = [] p = head while p: arr.append(p.val) p = p.next arr = sorted(arr) p = head i = 0 while p: p.val = arr[i] i+=1 p = p.next return head
使用一个辅助的数组即可,然后调用库函数快排,复杂度我O(nlogn),最后写回去。