力扣热门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;
    }
}
相关推荐
熬夜敲代码的猫几秒前
C++:模板精讲
c++·算法·模板
MegaDataFlowers14 分钟前
3.无重复字符的最长子串
算法
人道领域20 分钟前
【LeetCode刷题日记】20.有效的括号
算法·leetcode·职场和发展
生信研究猿20 分钟前
#P3492.第1题-基于决策树预判资源调配优先级
python·算法·决策树
贾斯汀玛尔斯22 分钟前
每天学一个算法--缓存淘汰策略(LRU / LFU · 结构与复杂度)
算法·缓存
大熊背25 分钟前
一套为硬件加速设计的经典边缘检测流水线(一)----边缘细化原理
人工智能·算法·计算机视觉·梯度计算
MicroTech202526 分钟前
微算法科技(NASDAQ :MLGO)基于线检测掩模的量子算法与新型增强量子表示(NEQR)技术
科技·算法·量子计算
yongui478341 小时前
NSGA-II求解多目标柔性作业车间调度算法(含甘特图绘制)
算法·甘特图
故事和你912 小时前
洛谷-算法2-1-前缀和、差分与离散化1
开发语言·数据结构·c++·算法·深度优先·动态规划·图论
知识浅谈9 小时前
DeepSeek V4 和 GPT-5.5 在同一天发布了??我也很懵,但对比完我悟了
算法