题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

import java.util.*;
/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
// 核心思想:设置傀儡节点,dum,cur代替dum去遍历
// 判断 l1.val 和 l2.val 的大小 注意 l1.val 可能等于 l2.val
// 注意:题上给出的示例都是 l1 和 l2 长度一样,但是我们必须考虑到
// l1 和 l2 长度不同的时候
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        
        // 首先设置傀儡节点 
        ListNode dum = new ListNode(-1);
        // 设置 cur 指针 代替 傀儡节点去遍历
        ListNode cur = dum;
        // 开始链接,进入循环,此时注意循环条件
        // 其中一个链表(l1或者l2)走完,跳出循环
        while(list1 !=null && list2 != null) {
            // 先比较 l1.val 和 l2.val
            // 谁小,那么cur指针指向谁
            if(list1.val <= list2.val) {
                cur.next = list1;
                list1 = list1.next; // list1 往后走
            }else {
                cur.next = list2;
                list2 = list2.next;// list2 往后走
            }
            cur = cur.next; // cur 往后走
        }  
        // 跳出循环之后,有一条链已经走完,我们需要判断,并且将剩下的
        // 拼接
        cur.next = list1 != null ? list1 : list2;
        // 最后返回头节点
        return dum.next;
    }
}
全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
勇敢的联想人前程似锦:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务