【剑指offer】-合并两个排序的链表-16/67

简介: 【剑指offer】-合并两个排序的链表-16/67

1. 题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

2. 题目分析

  1. 考虑两个链表是否为null,如果是null的话,返回另一个链表
  2. 设置两个结点:p1、p2分别指向list1、list2,创建一个空链表list3,并设置p3结点指向list3
  3. 分别遍历两个链表并比较,得出最后
  4. 注意:返回的是list3.next。因为此时p3开始的值为原始的值

3. 题目代码

public class Solution {
  public ListNode Merge(ListNode list1, ListNode list2) {
    if (list1 == null) {
      return list2;
    }
    if (list2 == null) {
      return list1;
    }
    ListNode p1 = list1;
    ListNode p2 = list2;
    ListNode list3 = new ListNode(1);
    ListNode p3 = list3;
    while (p1 != null || p2 != null) {
      if (p1 == null) {
        p3.next = p2;
        p3 = p2;
        p2 = p2.next;
      } else if (p2 == null) {
        p3.next = p1;
        p3 = p1;
        p1 = p1.next;
      } else if (p1.val > p2.val) {
        p3.next = p2;
        p3 = p2;
        p2 = p2.next;
      } else {
        p3.next = p1;
        p3 = p1;
        p1 = p1.next;
      }
    }
    return list3.next;
  }
}


相关文章
|
2月前
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
56 0
|
2月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
34 0
|
4月前
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
|
4月前
|
Python
【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
Leetcode题目"剑指 Offer 22. 链表中倒数第k个节点"的Python解决方案,使用双指针法找到并返回链表中倒数第k个节点。
56 5
|
4月前
|
Python
【Leetcode刷题Python】剑指 Offer 18. 删除链表的节点
Leetcode题目"剑指 Offer 18. 删除链表的节点"的Python解决方案,通过使用双指针法找到并删除链表中值为特定数值的节点,然后返回更新后的链表头节点。
46 4
|
4月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
48 0
|
6月前
23.合并K个升序链表
23.合并K个升序链表
|
6月前
|
存储 SQL 算法
LeetCode 83题:删除排序链表中的重复元素【面试】
LeetCode 83题:删除排序链表中的重复元素【面试】
|
6月前
|
存储 SQL 算法
LeetCode 题目 82:删除排序链表中的重复元素 II
LeetCode 题目 82:删除排序链表中的重复元素 II
|
6月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表