LeetCode:21.合并两个有序链表
解题思路与归并排序中的合并两个有序数组很相似。将数组替换成链表就能解此题。
解题步骤新建一个新链表,作为返回结果。用指针遍历两个有序链表,并比较两个链表的当前节点,较小者先接入新链表,并将指针后移一步。链表遍历结束,返回新链表。
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} list1
* @param {ListNode} list2
* @return {ListNode}
*/
var mergeTwoLists = function(list1, list2) {
let root=new ListNode(0)
let res=root
let p1=list1;
let p2=list2;
while(p1&&p2){
if(p1.val<p2.val){
res.next=p1
p1=p1.next
}
else{
res.next=p2
p2=p2.next
}
res=res.next
}
if(p1)res.next=p1;
if(p2)res.next=p2;
return root.next
};
'
标签:ListNode,21,val,next,链表,let,有序,LeetCode From: https://www.cnblogs.com/KooTeam/p/18673591