leetcode(js)-每日一练之 合并两个有序链表 题库编号21

leetcode(js)-每日一练之 合并两个有序链表

在这里插入图片描述

这属于一个关于链表的入门题:按照我下述代码画图一步一步来就能理解,前提是理解链表的基本特性和概念,本题只用了单向链表,如果想详细理解链表知识,我转载一个链接,大家可以去看看

链表基础知识

 var mergeTwoLists = function(l1, l2) {
            let curr = new ListNode();
            let dummy = curr;
            while (l1 !== null && l2 !== null) {
                if (l1.val < l2.val) {
                    curr.next = l1;
                    l1 = l1.next;
                } else {
                    curr.next = l2;
                    l2 = l2.next;
                }
                curr = curr.next;
            }
            if (l1 != null) {
                curr.next = l1;
            }
            if (l2 != null) {
                curr.next = l2;
            }
            return dummy.next;
        };

------------------------------------------------------------------------------------------------------

  1. L1 L2 curr 链表名字,都代表 各个链表的头

  2. let dummy = curr 的作用是 先把dummy指向curr的头部
    方便curr 插入所有节点之后 ,不用再重新找回头节点 ,直接用dummy输出即可。基本所有链表题都会用到这个小技巧,要学会!

下面是我自己理解的时候画的图,大家可能看不懂0.0 自己可以动手画一画。
(黑笔,第一次循环,蓝笔第二次循环,红笔第三次循环)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值