合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4,1->3->4
输出:1->1->2->3->4->4
解题思路
递归实现
1.如果l1或者l2一开始就是空链表,那么没有任何操作需要合并,只要返回非空链表即可
2.若两个链表都是非空,需要判断l1和l2哪一个链表头节点值更小,然后递归决定下一个添加到结果里的节点
3.如果两个链表有一个为空,递归结束
JavaScript代码如下:
var mergeTwoLists = function(l1, l2) {
if(l1 == null){
return l2
}
if(l2 == null){
return l1
}
if(l1.val < l2.val){
l1.next = mergeTwoLists(l1.next,l2)
return l1
}
else{
l2.next = mergeTwoLists(l1,l2.next)
return l2
}
};