1 '''
2 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
3 示例:
4 输入:1->2->4, 1->3->4
5 输出:1->1->2->3->4->4
6 '''
7
8
9 class ListNode:
10 def __init__(self, x):
11 self.val = x
12 self.next = None
13
14
15 class Solution:
16 def mergeTwoLists(self, l1, l2):
17 """
18 :type l1: ListNode
19 :type l2: ListNode
20 :rtype: ListNode
21 """
22 h = ListNode(-1)
23 cur = h
24 cur1 = l1
25 cur2 = l2
26 while cur1 is not None and cur2 is not None:
27 if cur1.val <= cur2.val:
28 cur.next = cur1
29 cur1 = cur1.next
30 else:
31 cur.next = cur2
32 cur2 = cur2.next
33 cur = cur.next
34 if cur1 is not None:
35 cur.next = cur1
36
37 if cur2 is not None:
38 cur.next = cur2
39 return h.next
40
41
42 if __name__ == '__main__':
43 list1 = [1, 2, 4]
44 list2 = [1, 3, 4]
45 l1 = ListNode(1)
46 l1.next = ListNode(2)
47 l1.next.next = ListNode(4)
48 l2 = ListNode(1)
49 l2.next = ListNode(3)
50 l2.next.next = ListNode(4)
51 ret = Solution().mergeTwoLists(l1, l2)
52 print(ret)