题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
思路
题目要得到单调不减的链表,即相邻结点可以相等或者后一结点值大于前一结点
- 确定头结点,比较两个链表的头结点,小的即为结果链表的头结点,假设此处为link1
- link1指针后移,link2指针位置不变,再次比较,数值小的连接在结果链表上
- 以此类推,利用递归调用,直到某一链表到达尾部,将另一链表直接接在结果链表上
代码实现
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function Merge(pHead1, pHead2)
{
// write code here
if(pHead1 === null){
return pHead2;
}
else if(pHead2 === null){
return pHead1;
}
var result;
if(pHead1.val < pHead2.val){
result = pHead1;
result.next = Merge(pHead1.next, pHead2);
}
else{
result = pHead2;
result.next = Merge(pHead1, pHead2.next);
}
return result;
}