七七老师の白日梦
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

合并两个有序链表:指针面向

写作时间:2026-07-20 09:31:04

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

需求

  • 拼接升序链表

实现

  • 指针

代码

class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
//        创建虚拟头结点
        ListNode dummy = new ListNode();
//        创建指针指向虚拟头节点
        ListNode tail = dummy;
//        条件list1与list2都不为空
        while (list1 != null && list2 != null) {
//            以下三句一起看,选择链表中较小的节点,将其连接在tail之后同时移动指针
            if (list1.val < list2.val) {
                tail.next = list1;
                list1 = list1.next;
            } else {
//                这里同理
                tail.next = list2;
                list2 = list2.next;
            }
//            遍历完链表后,将指针向后移动一位,方便后续节点的链接
            tail = tail.next;
        }
//         list1 或 list2 有一个为空时,将 tail 的下一个节点指向还非空的链表,即把剩
//         余部分直接连接到结果链表末尾。
        tail.next = (list1 != null) ? list1 : list2;
        return dummy.next;
    }
}


‍

avatar

七七老师

分享代码日常

RECOMMENDED

七七旧事:复盘并改变写博客的方式

2026-07-02 22:54:38

字母异位词

2026-07-04 22:22:08

寻找两个正序数组的中位数:合并与二分

2026-07-08 15:56:26

Table of Contents