前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >合并两个有序的链表

合并两个有序的链表

作者头像
暴躁的程序猿
发布2022-03-23 20:13:58
3640
发布2022-03-23 20:13:58
举报
文章被收录于专栏:阿飞的学习记录

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

这种链表 是需要我们遍历链表的

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

是否需要头结点 :

因为我们 目前的 头结点是不能确定的 当l1.val<l=2.val 时 头结点指向l1 当l1.val>l2.val 时 头结点指向l2 因此我们需要一个头结点指向 头结点的next 指向l1或l2

我们还需要判断边界条件 两个链表不一定一样长 有可能l1遍历完了 l2还没遍历完 或者l2遍历完了 l1还没遍历完 此时我们需要让 头节点的next指向链表剩余的元素

代码实现

代码语言:javascript
复制
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
         ListNode dump=new ListNode(1);
         ListNode cur=dump;
         while(l1!=null&&l2!=null){
             if(l1.val<=l2.val){
                 cur.next=l1;
                 l1=l1.next;
             //如果l2得值比l1小
             }else{
                 cur.next=l2;
                 //l2后移一位
                 l2=l2.next;
             }
             //每一次循环之后 cur后移一位 使cur指向链表尾部
             cur=cur.next;
         }
         //如果l1链表不为空
         if(l1!=null){
             //把l1剩余的加入到cur
             cur.next=l1;
         }
         if(l2!=null){
             //如果l2链表不为空剩余的加入到cur
            cur.next=l2;
         }
         return dump.next;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档