【剑指offer】17.合并两个排序的链表

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

思路

  • 如果pHead1和pHead2中有一个为空,则result是另一个;
  • 如果pHead1的头结点值小于pHead2,那么result的头结点为pHead1的头结点,其next为pHead1.next和pHead2比较的结果。同理对pHead2也一样。

因此本题可采用递归方法。

实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function Merge(pHead1, pHead2)
{
if ( !(pHead1 && pHead2) ){
return pHead1 || pHead2;
}
var head = {};
if (pHead1.val<pHead2.val){
head = pHead1;
head.next = Merge(pHead1.next,pHead2);
}else{
head = pHead2;
head.next = Merge(pHead1,pHead2.next);
}
return head;
}
module.exports = {
Merge : Merge
};
您的支持将鼓励我继续创作!
------本文结束感谢阅读------