首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >合并两个有序链表

合并两个有序链表

作者头像
木子星兮
发布于 2020-07-16 17:23:38
发布于 2020-07-16 17:23:38
2.9K0
举报
文章被收录于专栏:前端小码农前端小码农

JavaScript实现LeetCode第21题:合并两个有序链表

题目描述

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:

输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4

思路分析

新建一个链表,然后比较两个链表中的元素值,把较小的那个链到新链表中,由于两个输入链表的长度可能不同,所以最终会有一个链表先完成插入所有元素,则直接另一个未完成的链表直接链入新链表的末尾。

解法

代码语言:javascript
复制
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var mergeTwoLists = function(l1, l2) {
    let res = new ListNode(-1);
    let cur = res;
    while(l1 !== null && l2 !== null) {
        if (l1.val < l2.val){
            cur.next = l1;
            l1 = l1.next;
        } else {
            cur.next = l2;
            l2 = l2.next;
        }
        cur = cur.next;
    }
    cur.next = (l1 === null) ? l2 : l1;
    return res.next;
};
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • JavaScript实现LeetCode第21题:合并两个有序链表
    • 题目描述
    • 思路分析
    • 解法
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档