21.合并两个有序链表
思路一 暴力 借用外部空间
分别遍历两个链表,把数放到列表中,运用sort方法。再用尾插法,遍历列表,创建新的有序链表。
class Solution:
def mergeTwoLists(self, l1:ListNode, l2:ListNode) -> ListNode:
sum = []
def list2num(node):
while node != None:
sum.append(node.val)
node = node.next
list2num(l1)
list2num(l2)
sum.sort()
dummy_node = ListNode(-1)
start_node = dummy_node
for i in sum:
new = ListNode(i)
dummy_node.next = new
dummy_node = new
return start_node.next
思路二 递归
- 时间复杂度 O(m+n)