题解 | #合并两个排序的链表#
合并两个排序的链表
http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
/*
解题思路:
首先可以确定的是,链表1和链表2本身就是递增的,所以合并的过程可以从链表1,2的头结点开始,
先比较1,2的头结点中值的大小,将小的值的结点(比如为链表1头结点)作为合并后的链表(链表3)的头结点。
随后可以考虑成链表1的从原链表第二个结点开始,再次重复上面的步骤,这样就变成了一个递归问题。
————————————————
版权声明:本文为CSDN博主「zxucver」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chaipp0607/article/details/76622563
*/
public ListNode Merge(ListNode l1,ListNode l2) {
if (l1 == null) return l2;
else if (l2 == null) return l1;
ListNode pMergedHead = null;
if (l1.val < l2.val) {
pMergedHead = l1;
pMergedHead.next = Merge(l1.next, l2);
} else {
pMergedHead = l2;
pMergedHead.next = Merge(l1, l2.next);
}
return pMergedHead;
}
}