前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每日一题】7.LeetCode——合并两个有序链表

【每日一题】7.LeetCode——合并两个有序链表

作者头像
爱敲代码的小杨.
发布2024-05-07 18:32:37
650
发布2024-05-07 18:32:37
举报
文章被收录于专栏:JavaJava

1. 题目描述

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

示例1

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

示例2

输入:l1 = [] ,l2 = [] 输出:[]

示例3

输入:l1 = [] ,l2 = [0] 输出:[0]

题目链接?

2.思路

  1. 创建一个节点newHead为虚拟节点
  2. 开始比较链表的大小,谁大newHead就指向谁,头结点就指向头结点的next
  3. 判断链表是否为空,为空则newHead指向头结点的next

3. 代码

代码语言:javascript
复制
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode newHead = new ListNode(-1);
        ListNode temp = newHead;

        while(list1 != null && list2 != null) {
            if (list1.val < list2.val) {
                temp.next = list1;
                list1 = list1.next;
                temp = temp.next;
            } else {
                temp.next = list2;
                list2 = list2.next;
                temp = temp.next;
            }
        }
        if (list1 != null) {
            temp.next = list1;
        }
        if (list2 != null) {
            temp.next = list2;
        }
        return newHead.next;
    }
}

运行结果:

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 题目描述
    • 示例1
      • 示例2
        • 示例3
        • 2.思路
        • 3. 代码
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com