题解 | #单链表的排序#
单链表的排序
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

查看5道真题和解析