Leetcode:合并两个有序链表

Leetcode:合并两个有序链表_第1张图片

思路分析:

  (1)如果其中一个链表为空了,就直接返回另一个非空链表

  (2)两个链表走从第一个节点开始比较,如果第一个链表比第二个链表的数据小,那么就把第一个链表接收递归的值,并且递归时把第一个链表往后移一位。最后返回第一个链表的地址。反之。

代码实现:

class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if (l1 == nullptr) 
            return l2;
         else if (l2 == nullptr) 
            return l1;
         else if (l1->val < l2->val) 
         {
            l1->next = mergeTwoLists(l1->next, l2);
            return l1;
         } 
          else
           { l2->next = mergeTwoLists(l1, l2->next);
            return l2;
           }
    }
};

 

你可能感兴趣的:(leetcode)