力扣热门100题之合并两个有序链表

思路:

用一个虚拟头节点 接住结果,然后像拉链一样,谁小就先拿谁

建一个虚拟头 dummy,用 cur 往后拼接

  1. 同时遍历 list1、list2

  2. 谁小就把谁接到 cur 后面,然后那条链表指针后移

  3. 最后把剩下不为空的整条直接接上

  4. 返回 dummy.next

合并链表的 "神器":虚拟头节点 后面跟一个移动指针 专门用来往后拼接新节点

完整代码实现:

java 复制代码
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        // 分别遍历两条链表 每次取较小的值加入新链表中 返回新链表
        //定义一个结果链表的头节点
        ListNode dummy = new ListNode(-1);
        ListNode curr = dummy;  //移动指针用来拼后面结点的

        while(list1 != null && list2 != null){
            if(list1.val<=list2.val){
                curr.next = list1;
                list1 = list1.next;
            }else{
                curr.next = list2;
                list2 = list2.next;
            }
            curr = curr.next;
        }

        // 剩下的直接拼上去
        if (list1 != null) {
            curr.next = list1;
        }
        if (list2 != null) {
            curr.next = list2;
        }
        return dummy.next;
    }
}
相关推荐
明志数科1 小时前
4D时序标注技术详解:让机器人理解连续动作的数据基础
java·算法·机器人
KaMeidebaby2 小时前
卡梅德生物技术快报|原核表达系统工艺优化:包涵体重折叠 + 分子筛纯化实现功能 RBD 高效制备,附全参数配置
前端·人工智能·算法·数据挖掘·数据分析
无限码力2 小时前
携程0510笔试真题【单数组交换】
算法·携程笔试·携程笔试真题·携程0510笔试真题
BlockWay3 小时前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
风筝在晴天搁浅3 小时前
快手 CodeTop LeetCode 224.基本计算器
数据结构·算法·leetcode
Smoothcloud润云3 小时前
5大功能精修,重构AI算力使用体验!
java·人工智能·windows·算法·重构·编辑器·sublime text
计算机安禾3 小时前
【算法分析与设计】第41篇:确定性与非确定性多项式时间:P与NP的形式化
算法
leo__5204 小时前
随机接入退避算法过程模拟实现
网络·算法
-To be number.wan4 小时前
算法日记 | STL- sort排序
c++·算法
玖釉-4 小时前
Vulkan 中 Shader 的 vert、frag、mesh、comp 全面解析:作用、关系、特点与工程实践
开发语言·c++·windows·算法·图形渲染