合并两个有序链表js
题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
示例 2:
输入:l1 = [], l2 = []
输出:[]
示例 3:
输入:l1 = [], l2 = [0]
输出:[0]
分析:
设置一个伪指针作为拉链,同时在两个链表上分别放置一个指针,两串链表相当于拉索,尾指针在两串链表之间移动,模拟拉拉链的模样。起初 let dummy = new ListNode(-1), cur = dummy;,伪指针。当两条链表上的指针在移动时,通过比较大小,将小的数字放在拉链上,同时指针向后移动一位。当接近末尾时,一定有一串链表先遍历完,盛另一个链表孤零零,我们把这种情况下剩下的节点直接放在拉链上,即合并成功。
代码:
/*** 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 dummy = new ListNode(-1), cur = dummy;let p1 = list1, p2 = list2;while (p1 && p2) {if (p1.val < p2.val) {cur.next = p1p1 = p1.next} else {cur.next = p2p2 = p2.next}cur = cur.next}if (!p1) {cur.next = p2} else {cur.next = p1}return dummy.next
};
递归方式:
const mergeTwoLists = function (list1: ListNode | null, list2: ListNode | null): ListNode | null {if (!list1) return list2if (!list2) return list1if (list1.val < list2.val) {list1.next = mergeTwoLists(list1.next, list2)return list1} else {list2.next = mergeTwoLists(list1, list2.next)return list2}
}
合并两个有序链表js相关推荐
- java合并两个有序链表_JS实现的合并两个有序链表算法示例
本文实例讲述了JS实现的合并两个有序链表算法.分享给大家供大家参考,具体如下: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1-> ...
- 21. 合并两个有序链表 JavaScript实现
21. 合并两个有序链表 合并有序链表 一.递归 递归详解 /*** Definition for singly-linked list.* function ListNode(val, next) ...
- 【每日一算法】 合并两个有序链表
微信改版,加星标不迷路! 每日一算法-合并两个有序链表 作者:阿广 阅读目录 1 题目 2 解析 1 题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. ...
- 【Java】leetCode 21 合并两个有序链表
题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...
- 合并两个有序链表分析
合并两个有序链表: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: l1 l2 输入:1->2->4, 1->3->4 ...
- 《LeetCode力扣练习》第21题 合并两个有序链表 Java
<LeetCode力扣练习>第21题 合并两个有序链表 Java 一.资源 题目: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 ...
- 算法:合并两个有序链表
题目 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1- ...
- LeetCode题组:第21题-合并两个有序链表
1.题目:合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出: ...
- LeetCode 21合并两个有序链表22括号生成
微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...
- 2019-03-21-算法-进化(合并两个有序链表)
题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-& ...
最新文章
- kvm安装及虚拟机创建
- VMware vSAN6.7 设计和优化 vSAN 主机--
- 解决Eclipse无法打开“Failed to load the JNI shared library”(转)
- 【Android】资源加载过程
- python高级教程html文件_Python之html转docx文件高级用法
- 电子商务计算机网络安全技术教案,网络安全技术教案.pdf
- 如何实现一个符合泊松分布的即时消息发生器?
- 无法删除sqlserver的jobs的方式
- (04)System Verilog 常用数据类型示例
- 【ElasticSearch】Es 源码之 NodeConnectionsService 源码解读
- ethtool 原理介绍和解决网卡丢包排查思路(附ethtool源码下载)
- .NET Core 开源库被曝漏洞,可使恶意软件逃避检测,无补丁
- 66. 编写高效的 JavaScript
- 视觉三维重建中的关键技术及代码实现视频分享
- 正解mysql: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6)
- zoj 3690(递推+矩阵优化)
- 《新年Flag》2019年“新年Flag” - 新目标 学习计划
- 计算机网络之物理层,数据链路层,网络层 学习笔记
- 计算机u盘 硬盘无法读取,U盘在电脑上读取不出来怎么办?
- Google Chrome for mac(谷歌浏览器)