yan chuanli 2 years ago
parent
commit
6f70e902d8
1 changed files with 20 additions and 11 deletions
  1. 20 11
      merge_two_lists.py

+ 20 - 11
merge_two_lists.py

@@ -1,12 +1,22 @@
 from typing import Optional
-from utils import ListNode
+from utils import ListNode, arr_to_linklist, linkList_to_arr
+import pytest
 
 
 class Solution:
     def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
         # 递归
-        list3 = ListNode()
-        head = list3
+        if not list1:
+            return list2
+        elif not list2:
+            return list1
+        elif list1.val <= list2.val:
+            list1.next = self.mergeTwoLists(list1.next, list2)
+            return list1
+        else:
+            list2.next = self.mergeTwoLists(list2.next, list1)
+            return list2
+
 
         # 非递归
         # list3 = ListNode()
@@ -23,11 +33,10 @@ class Solution:
         # pre.next = list1 if list1 else list2
         # return list3.next
 
-# if __name__ == "__main__":
-#     s = Solution()
-#     l1 = arr_to_linklist([1, 2, 4])
-#     l2 = arr_to_linklist([1, 3, 4])
-#     l3 = s.mergeTwoLists(l1, l2)
-#     res = linkList_to_arr(l3)
-#     print(res)
-#     assert res == [1,1,2,3,4,4]
+if __name__ == "__main__":
+    s = Solution()
+    list1 = arr_to_linklist([1, 2, 4])
+    list2 = arr_to_linklist([1, 3, 4])
+    res = s.mergeTwoLists(list1, list2)
+    res = linkList_to_arr(res)
+    assert res == [1,1,2,3,4,4]