做本机网站,阿里云服务器搭建多个网站,固安做网站的公司,网站的分页做不好会影响主页题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
用例 输入#xff1a;l1 [1,2,4], l2 [1,3,4] 输出#xff1a;[1,1,2,3,4,4]
输入#xff1a;l1 [], l2 [] 输出#xff1a;[]
输入#xff1a;l1 []…题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
用例 输入l1 [1,2,4], l2 [1,3,4] 输出[1,1,2,3,4,4]
输入l1 [], l2 [] 输出[]
输入l1 [], l2 [0] 输出[0]
示例代码
解法直接合并
/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/
/*** param {ListNode} list1* param {ListNode} list2* return {ListNode}*/
var mergeTwoLists function(list1, list2) {while(list2){list1mount(new ListNode(list2.val,list2.next),list1);list2list2.next;}return list1;
};
const mount(node,list){let rowNodelist;let lastNodelist;let flagfalse;node.nextnull;//断开之前的 否则会ggif(listnull) return node;while(list){if(node.vallist.val){if(lastNodelist){//添加首位置let rootNodenode;node.nextlist;rowNoderootNode;}else{//添加在中间lastNode.nextnode;node.nextlist;}flagtrue;break;}else{lastNodelist;listlist.next;}}if(!flag){//添加在屁股后lastNode.nextnode;}return rowNode;
}Tip 拆开再合并再拆 办法虽笨但胜在理解简单