面试算法-160-合并两个有序链表

题目

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]

输出:[1,1,2,3,4,4]

java 复制代码
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode dummy = new ListNode(0);
        ListNode p3 = dummy;
        ListNode p1 = list1;
        ListNode p2 = list2;
        while (p1 != null && p2 != null) {
            if (p1.val <= p2.val) {
                p3.next = p1;
                p1 = p1.next;
            } else {
                p3.next = p2;
                p2 = p2.next;
            }

            p3 = p3.next;
        }

        p3.next = p1 == null ? p2 : p1;
        return dummy.next;
    }
}
相关推荐
Rhystt8 小时前
代码随想录算法训练营第六十天|多余的边?从基础到进阶!
开发语言·c++·算法·图论
东离与糖宝8 小时前
零基础Java学生面试通关手册:项目+算法+框架一次搞定
java·人工智能·面试
2301_810160958 小时前
C++中的策略模式进阶
开发语言·c++·算法
keep intensify8 小时前
二叉树的直径
数据结构·算法·深度优先
keep intensify8 小时前
单源最短路径
数据结构·c++·算法
2401_873544928 小时前
分布式缓存一致性
开发语言·c++·算法
香芋超新星8 小时前
反转字符串中的小写字母
算法
篮l球场8 小时前
数组中的第K个最大元素
数据结构·算法·leetcode
月落归舟9 小时前
排序算法---(三)
数据结构·算法·排序算法
njidf9 小时前
C++中的观察者模式
开发语言·c++·算法