27、链表-合并两个有序链表

思路:

这道题不需要集合放入两个链表再进行重排序,只需要两个指针,按大小进行遍历,代码如下:

java 复制代码
class Solution {
    /**
     * 1->3->5->7
     * 2->4->6->8->10->12
     * 
     * 1->3->5->7
     * h  c1
     * p
     * 2->4->6->8->10->12
     * c2
     * 
     * 每次都是比较c1和c2 那个小 谁小p的next指针指向谁 
     *   然后c1 或者c2 向前走一位,p来到p.next 位置
     * 
     * 最后判断p.next=c1==null?c2:c1
     */
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        if (list1==null||list2==null){
            return list1==null?list2:list1;
        }
        
        ListNode head=list1.val<=list2.val?list1:list2;
        ListNode cur1=head.next;
        ListNode cur2=head==list1?list2:list1;
        ListNode pre=head;
        
        while (cur1!=null&&cur2!=null){
            if (cur1.val<=cur2.val){
                pre.next=cur1;
                cur1=cur1.next;
            }else {
                pre.next=cur2;
                cur2=cur2.next;
            }
            pre=pre.next;
        }
        pre.next=cur1==null?cur2:cur1;
        return head;
    }
}
相关推荐
缓慢更新5 分钟前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
深圳市快瞳科技有限公司20 分钟前
野外鸟类AI识别落地实录:输入适配、结构化输出、去重聚合与置信度分流的工程实践
算法·计算机视觉·鸟类识别·鸟类ai识别·野外鸟类观测·林业调查
LMT流氓兔2 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真2 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
小豆庄2 小时前
视频遮罩追踪退场后ID撞号的排查—多目标场景下的失效
opencv·算法·bug·视频·python3.11
Tisfy2 小时前
LeetCode 3882.网格图中最小异或路径:动态规划
算法·leetcode·动态规划
wangbing11253 小时前
平台介绍-modbus设备调试
java
D e re k ZH3 小时前
P5025 [SNOI2017] 炸弹
c++·算法
西索斯coding3 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
A boy CDEF girl3 小时前
算法题专栏:优选算法
数据结构·算法·leetcode