链表算法之【合并两个有序链表】

目录

LeetCode-21题


LeetCode-21题

将两个升序链表合并成一个新的升序链表并返回

java 复制代码
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        if (list1 == null)
            return list2;
        if (list2 == null)
            return list1;

        ListNode dummyHead = new ListNode();
        ListNode curr = dummyHead;
        // 双指针
        ListNode p1 = list1;
        ListNode p2 = list2;

        while (p1 != null && p2 != null) {
            // 链入节点值较小的节点
            if (p1.val < p2.val) {
                curr.next = p1;
                p1 = p1.next;
            } else {
                curr.next = p2;
                p2 = p2.next;
            }
            curr = curr.next;
        }
        
        // 处理剩余节点
        if (p1 != null)
            curr.next = p1;
        if (p2 != null)
            curr.next = p2;

        return dummyHead.next;
    }

    private static class ListNode {
        int val;
        ListNode next;

        ListNode() {
        }

        ListNode(int val) {
            this.val = val;
        }

        ListNode(int val, ListNode next) {
            this.val = val;
            this.next = next;
        }
    }
}
相关推荐
许彰午2 分钟前
06_Java面向对象入门
java·开发语言·python
浮生望3 分钟前
双指针算法面试通关指南:从入门到精通
算法
Java_2017_csdn3 分钟前
Java 策略模式(Strategy Pattern)-(二)
java·开发语言·策略模式
SimpleLearingAI6 分钟前
PyTorch & Numpy 实现线性回归详解
人工智能·算法·多模态大模型
papership6 分钟前
【入门级-数据结构-1、线性结构:链 表(单链表、双向链表、循环链表 )】
数据结构·算法·链表
摇滚侠6 分钟前
CSDN AI 数字营销测评 营销组件
java
Java_2017_csdn7 分钟前
Java 策略模式(Strategy Pattern)-(一)
java·开发语言·策略模式
plainGeekDev8 分钟前
XML Shape/Selector → Kotlin 动态创建
android·java·kotlin
Omics Pro8 分钟前
P4医学4大支柱需绑定4大数字技术才可落地
人工智能·python·算法·机器学习·plotly
plainGeekDev12 分钟前
Java 自定义 View → Kotlin 自定义 View
android·java·kotlin