Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Example:
Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4
解法:
class Solution:
def mergeTwoLists(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
head = ListNode(-1)
p1 = l1
p2 = l2
p3 = head
while p1 and p2 :
if p1.val > p2.val:
p3.next = p2
p2 = p2.next
p3 = p3.next
else:
p3.next = p1
p1 = p1.next
p3 = p3.next
if p2 == None:
p3.next = p1
return head.next
else:
p3.next = p2
return head.next
// 有思路,但python的指针不知道怎么写,参考了他人的,下次再写过 TODO
更简洁的参考:
if not l1: return l2
if not l2: return l1
if l1.val < l2.val:
l3, l1 = l1, l1.next
else:
l3, l2 = l2, l2.next
cur = l3
while l1 and l2:
if l1.val < l2.val:
cur.next, l1 = l1, l1.next
else:
cur.next, l2 = l2, l2.next
cur = cur.next
cur.next = l1 if l1 else l2
return l3
--------------新手刷题,仅用于自身记录,如有错误,欢迎指出---------------