题解 | #单链表的排序#
单链表的排序
https://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08
解题思路
- 先遍历链表元素,保存到数组内;
- 再排序;
- 最后创建新的链表。
- 用到了Python内置的排序算法,时间复杂度为O(NlogN)。
- 空间复杂度为O(N)
class Solution: def sortInList(self , head: ListNode) -> ListNode: # write code here p = head a = [] while p: a.append(p.val) p = p.next a = sorted(a) res = ListNode(a[0]) ress = res for i in a[1:]: res.next = ListNode(i) res = res.next res.next = None return ress