leetcode-21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
思路:
递归其实并不难理解,就是从宏观去看待它,思路就是建立一个新链表,然后对比l1与l2哪个比较合适,然后就把它赋值给新链表,后面要做的事情就是把剩余的部分递归合并,然后加载新链表的后面就行了,这个思路并不困难,简单易懂
//21. 合并两个有序链表
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null) {
return l2;
}if(l2 == null) {
return l1;
}
ListNode res;
if(l1.val < l2.val) {
res = l1;
res.next = mergeTwoLists(l1.next, l2);
} else {
res = l2;
res.next = mergeTwoLists(l2.next, l1);
}
return res;
}