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;
    }
}
相关推荐
JL1510 分钟前
Java+Go 混合架构怎么搭?收官 50 道面试题 + 学习路线
java·架构·golang
冻柠檬飞冰走茶14 分钟前
PTA基础编程题目集 7-17 爬动的蠕虫(C语言实现)
c语言·开发语言·数据结构·算法
Tattoo_Welkin21 分钟前
IDEA 中常用操作记载
java·elasticsearch·intellij-idea
音符犹如代码26 分钟前
Arthas classloader + sc 实战:JVM 类加载与手动加载
java·jvm·spring boot
乐启国际旅行社有限公司41 分钟前
Java线程池实战:文旅系统批量任务性能优化(团期生成/数据导出)
java·开发语言·性能优化
Listen·Rain1 小时前
用AI开发出一个AI
java·人工智能·spring boot·tomcat·intellij-idea·mybatis·visual studio
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第203题】【09_Zookeeper篇】第4题:ZooKeeper 的节点类型有哪些?
java·zookeeper·分布式锁·分布式协调·znode
会编程的土豆1 小时前
LeetCode 热题 HOT100(一):哈希表与双指针入门(Go 实现)
算法·leetcode·职场和发展
学习中.........1 小时前
并行 BPE 训练 与 手写 `Tokenizer`
人工智能·算法·机器学习·语言模型
宸津-代码粉碎机1 小时前
告别手动Jar部署!生产级无损热部署方案,彻底解决OOM与更新失效问题
java·大数据·开发语言·人工智能·python