题解 | #合并两个排序的链表#
合并两个排序的链表
http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
function ListNode(x){
this.val = x;
this.next = null;
}
function Merge(pHead1, pHead2)
{
// write code here
if (pHead1 ===null) return pHead2;
if (pHead2 ===null) return pHead1;
let p1 = pHead1;
let p2 = pHead2;
let result ;
let node;
if(p1.val<p2.val){
result = new ListNode(p1.val)
p1 = p1.next
}else{
result = new ListNode(p2.val)
p2 = p2.next
}
let previous = result;
while(p1 !== null && p2 !== null){
if(p1.val <= p2.val){
node = new ListNode(p1.val)
p1 = p1.next
}else{
node = new ListNode(p2.val)
p2 = p2.next
}
previous.next = node;
previous = node;
}
while (p1 !== null ){
node = new ListNode(p1.val)
p1 = p1.next
previous.next = node;
previous = node;
}
while (p2 !== null ){
node = new ListNode(p2.val)
p2 = p2.next
previous.next = node;
previous = node;
}
return result;
}
module.exports = {
Merge : Merge
};