标签:ListNode 21 val pointer1 每日 pointer2 next pointer LeetCode
Merge Two Sorted Lists
我的解法
我的第一次提交
介绍
.....
思路
-
构建链表:
listNode
(存放返回结果),listnode1
(链表1),listnode2
(链表2) -
创建三个指针分别指向三个链表:
let [pointer, pointer1, pointer2] = [listnode, listnode1.next, listnode2.next];
-
依次比较
listnode1
和listnode2
的val
值- 如果
pointer1.val < pointer2.val
, 移动pointer1
指针,pointer1.val
值入pointer
指向的链表, 移动pointer
指针 - 如果
pointer1.val > pointer2.val
, 移动pointer2
指针,pointer2.val
值入pointer
指向的链表, 移动pointer
指针
- 如果
-
如果
pointer1
和pointer2
在经过循环比较后, 可能存在一个非空, 需要将pointer.next = poninter1
或者pointer.next = pointer2
-
返回
listnode.next
代码
/*
* @Author: fox
* @Date: 2022-05-03 10:48:54
* @LastEditors: fox
* @LastEditTime: 2022-05-03 13:50:45
* @Description: https://leetcode.com/problems/merge-two-sorted-lists/
*/
class ListNode {
constructor (val, next) {
this.val = (val === undefined ? 0 : val);
this.next = (next === undefined ? null : next)
}
}
/**
* @description: Runtime: 40.85% Memory Usage: 83.57%
* @param {ListNode} list1
* @param {ListNode} list2
* @return {ListNode}
*/
const mergeTwoLists = (list1, list2) => {
const listnode = new ListNode(0);
const listnode1 = new ListNode(0, list1);
const listnode2 = new ListNode(0, list2);
let [pointer, pointer1, pointer2] = [listnode, listnode1.next, listnode2.next];
while (pointer1 && pointer2) {
if (pointer1.val < pointer2.val) {
pointer.next = new ListNode(pointer1.val)
pointer1 = pointer1.next
pointer = pointer.next
} else {
pointer.next = new ListNode(pointer2.val)
pointer2 = pointer2.next
pointer = pointer.next
}
}
if (pointer1) {
pointer.next = pointer1
}
if (pointer2) {
pointer.next = pointer2
}
return listnode.next
};
const list1 = [1, 2, 4]
const list2 = [1, 3, 4]
console.log(mergeTwoLists(list1, list2))
标签:ListNode,21,val,pointer1,每日,pointer2,next,pointer,LeetCode 来源: https://www.cnblogs.com/mapodoufu/p/16218278.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。