题目描述:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:
使用函数递归思想,举例:
var List1 = {
val: 1,
next:{
val: 3,
next:{
val:5,
next: null
}
}
}
var List2 = {
val: 2,
next:{
val: 4,
next:{
val: 6,
next: null
}
}
}
将二者的值相比,1<2,那么newList = List1,并将List1指向下一个节点,二者再次相比,3>2,那么newList.next = List2,并将List2指向下一个节点,二者再次相比3<4…当List1或List2其中一个为null时,就取另外一个剩余的节点即可。
代码实现:
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function Merge(pHead1, pHead2)
{
// write code here
if (pHead1 == null || pHead2 == null){
return pHead1 || pHead2;
}
var newList = null;
if (pHead1.val < pHead2.val){
newList = pHead1;
newList.next = Merge(pHead2,pHead1.next);
} else {
newList = pHead2;
newList.next = Merge(pHead1,pHead2.next);
}
return newList;
}