题目大意

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

解题思路

题目里面预定义的数据结构之后两个链表,这里要增加第三个吗?
递归解法

  • 先看看A、B两个链表当前是否为空,找边界条件,一个为空的话则直接返回另一个
  • 再比较A和B当前结点data值大小,
  • 如果A的当前数据小于B当前数据,否则A==A—>next

    1. # Definition for singly-linked list.
    2. # class ListNode:
    3. # def __init__(self, val=0, next=None):
    4. # self.val = val
    5. # self.next = next
    6. class Solution:
    7. def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
    8. if list1==None:
    9. return list2
    10. elif list2==None:
    11. return list1
    12. elif list1.val<list2.val:
    13. list1.next=self.mergeTwoLists(list1.next,list2)
    14. return list1
    15. else:
    16. list2.next=self.mergeTwoLists(list1,list2.next)
    17. return list2

    问题

  • python中的none和null ? 没有NULL,只有NONE

  • 递归调用函数加self。
  • https://www.jianshu.com/p/814d65a9c404