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=rootlet p1=list1;let p2=list2;while(p1&&p2){if(p1.val<p2.val){res.next=p1p1=p1.next}else{res.next=p2p2=p2.next}res=res.next}if(p1)res.next=p1;if(p2)res.next=p2;return root.next
};
'