力扣练习第十二天——合并两个有序链表
题目大致如下:
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
链接来源于LeetCode:https://leetcode-cn.com/problems/merge-two-sorted-lists/
大致思路:
采用递归的想法,反复比对两个链表的节点,每次递归新的函数都以“l1”为新的当前链表节点。
代码大致如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(!l1) return l2;
if(!l2) return l1;
ListNode* ma=nullptr;
if(l1->val<l2->val){
a=l1;
a->next=mergeTwoLists(l1->next,l2);
}
else{
a=l2;
a->next=mergeTwoLists(l1,l2->next);
}
return a;
}
};
结果大致为: