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