【CT】LeetCode手撕—21. 合并两个有序链表

news2025/9/18 16:09:18

目录

  • 题目
  • 1-思路
  • 2- 实现
    • ⭐21. 合并两个有序链表——题解思路
  • 3- ACM实现

题目

  • 原题连接:21. 合并两个有序链表

1-思路

双指针:题目提供的 list1 和 list2 就是两个双指针

  • 通过每次移动 list1 和 list2 并判断二者的值,判断完成后将其 插入到新的当前结点 cur.next 后即可完成链表按升序排列。

2- 实现

⭐21. 合并两个有序链表——题解思路

在这里插入图片描述

class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        // 定义一个 头结点记录位置
        ListNode dummyHead = new ListNode(0);
        ListNode cur = dummyHead;
        while(list1!=null && list2!=null){
            if(list1.val<list2.val){
                cur.next = list1;
                list1 = list1.next;
            }else{
                cur.next = list2;
                list2 = list2.next;
            }
            cur = cur.next;
        }

        if(list1!=null){
            cur.next = list1;
        }
        if(list2!=null){
            cur.next = list2;
        }
        return dummyHead.next;
    }
}

3- ACM实现

public class twoLinkASC {

    static class ListNode{
        int val;
        ListNode next;
        ListNode(){}
        ListNode(int x){
            val = x;
        }
    }

    public static ListNode mergeTwoLink(ListNode list1,ListNode list2){
        // 定义虚拟头
        ListNode dummyHead = new ListNode(-1);
        ListNode cur = dummyHead;

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


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入链表1的长度");
        ListNode head1=null,tail1=null;
        int n1 = sc.nextInt();
        System.out.println("输入链表元素");
        for(int i = 0 ; i < n1;i++){
            ListNode nowNode = new ListNode(sc.nextInt());
            if(head1==null){
                head1 = nowNode;
                tail1 = nowNode;
            }else{
                tail1.next = nowNode;
                tail1 = nowNode;
            }
        }

        System.out.println("输入链表2的长度");
        ListNode head2=null,tail2=null;
        int n2 = sc.nextInt();
        System.out.println("输入链表元素");
        for(int i = 0 ; i < n2;i++){
            ListNode nowNode = new ListNode(sc.nextInt());
            if(head2==null){
                head2 = nowNode;
                tail2 = nowNode;
            }else{
                tail2.next = nowNode;
                tail2 = nowNode;
            }
        }

        ListNode forRes = mergeTwoLink(head1,head2);
        while (forRes!=null){
            System.out.print(forRes.val+" ");
            forRes = forRes.next;
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1822436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Text2SQL 论文】CodeS:Text2SQL 领域的开源语言模型

论文&#xff1a;CodeS: Towards Building Open-source Language Models for Text-to-SQL ⭐⭐⭐⭐ arXiv:2402.16347, SIGMOD 2024 人大 Code: CodeS | GitHub 一、论文速读 本文提出一个开源的专门用于 Text2SQL 任务的 LLM —— CodeS&#xff0c;有多个参数规模的版本&…

揭秘App广告监测黑科技!Xinstall助你洞察用户行为,提升转化率!

在移动互联网时代&#xff0c;App的推广与运营已成为企业获取用户、提升品牌知名度的重要手段。然而&#xff0c;面对激烈的市场竞争&#xff0c;如何确保广告投放的精准性、提高广告效果转化率&#xff0c;成为了摆在每一位推广者面前的难题。今天&#xff0c;我们就来聊聊如何…

盘点:支持国产化信创的项目管理软件有哪些?

对于个人或者预算充足的团队来说&#xff0c;找到一个靠谱、好用的项目管理软件是一件很有必要的事情&#xff0c;那么目前国内有哪些【国产化信创】的项目管理软件值得选择呢&#xff1f; 下面盘点10款&#xff0c;每一款都独具特色。 1、国产化项目管理软件&#xff0c;可灵活…

Go微服务框架Kratos中makefile命令的使用方法及报错处理

运用 kratos 微服务框架开发项目时&#xff0c;可以使用提供的 makefile 中的命令自动且快速生产相关代码&#xff0c;提高开发效率。 krotos中makefile文件内容如下&#xff1a; GOHOSTOS:$(shell go env GOHOSTOS) GOPATH:$(shell go env GOPATH) VERSION$(shell git descri…

【讯为Linux驱动开发】6.自旋锁spinlock

【自旋锁】 线程A获取自旋锁后&#xff0c;B假如想获取自旋锁则只能原地等待&#xff0c;仍占用CPU&#xff0c;不会休眠&#xff0c;直到获取自旋锁为止。 【函数】 DEFINE SINLOCK(spinlock t lock) 定义并初始化一个变量int spin lock init(spinlock t*lock) 初始化自…

工业4.0下的PLC进化论:ARMxy计算机如何重塑自动化

智能物流系统的高效与精准成为企业竞争力的关键。在这个背景下&#xff0c;传统的PLC系统因其固有的局限性&#xff0c;如扩展性差、系统封闭等&#xff0c;开始显得力不从心。ARMxy工业计算机作为新一代的PLC替代方案&#xff0c;凭借其低功耗、高性能以及高度的灵活性&#x…

OpenStack入门初体验

云计算概述 概念 侠义的云计算是指IT基础设施的交付和使用模式广义的云计算是指服务的交付和使用模式云计算资源 网络资源存储资源计算资源 云计算的服务模型 IaaS&#xff08;基础架构即服务&#xff09; IaaS 提供最底层的 IT 基础设施服务&#xff0c;包括处理能力、存储…

Spotify 音乐平台宣布成立内部创意机构,测试生成式人工智能配音广告

Spotify是一家流媒体音乐平台&#xff0c;提供广泛的音乐、播客和视频内容。用户可以通过订阅服务Spotify Premium来享受更多高级功能&#xff0c;如无广告播放、离线听歌等。 Spotify 周四宣布&#xff0c;它将通过其首家名为 Creative Lab 的内部创意机构进一步进军广告领域…

夏季城市环境卫生挑战多:TSINGSEE青犀智慧环卫方案助力城市垃圾站智能管理

一、背景分析 夏季&#xff0c;随着气温的攀升&#xff0c;城市垃圾的数量和种类也随之增加&#xff0c;这给环卫工作带来了极大的挑战。环卫垃圾站点作为城市垃圾处理的重要一环&#xff0c;其管理效率直接关系到城市环境的整洁与卫生。近年来&#xff0c;随着视频监控技术的…

Word恢复未保存文件怎么做?4招助你拯救数据!

“着急&#xff01;我在编辑Word文档时&#xff0c;还没有来得及保存文件&#xff0c;系统就崩溃了&#xff0c;现在文件找不到了&#xff0c;还有方法能找回来吗&#xff1f;” 在数字时代&#xff0c;我们的日常生活和工作都离不开Word文档。然而&#xff0c;我们有时候辛苦编…

YUV格式与RGB格式详解

图像处理 文章目录 图像处理前言YUV 格式YUV 采样 前言 像素格式描述了像素数据存储所用的格式&#xff0c;定义了像素在内存中的编码方式。RGB 和 YUV 为两种经常使用的像素格式。/ 1024 / 1024 2.63 MB 存储空间。 RGB 和 RGBA 格式 RGB 图像具有三个通道 R、G、B&#xff…

多模态大模型:识别和处理图片与视频的技术详解

多模态大模型&#xff1a;识别和处理图片与视频的技术详解 多模态大模型&#xff1a;识别和处理图片与视频的技术详解1. 什么是多模态大模型&#xff1f;2. 多模态大模型的基本架构3. 识别和处理图片3.1 图像特征提取3.2 图像分类与识别3.3 图像生成与增强 4. 识别和处理视频4.…

Idea jdk配置的地方 启动时指定切换的地方

jdk 配置的地方 项目sdk 所在位置 管理添加或删除的地方&#xff0c;增加后&#xff0c;可以在在上面切换 启动时指定版本

孩子小学毕业了

难说再见 时间已到眼前 一张张照片 模糊了我双眼

什么是微控制器中的欠压复位?如何防止误断电

微控制器的“掉电”是指电源电压部分暂时降低到可靠运行所需的水平以下。许多微控制器都有一个保护电路&#xff0c;可以检测电源电压何时低于此水平&#xff0c;并将设备置于复位状态&#xff0c;以确保电源恢复时正确启动。此操作称为“欠压复位”或 BOR。类似的功能称为低电…

忆捷硬盘数据恢复方法有哪些?常见的有这四种

在数字化时代&#xff0c;硬盘作为存储大量数据的重要设备&#xff0c;其安全性与可靠性直接关系到我们的工作和生活。然而&#xff0c;无论是由于误操作、病毒感染还是硬件故障&#xff0c;硬盘数据丢失的情况时有发生。对于使用忆捷硬盘的用户来说&#xff0c;如何在数据丢失…

Spring Boot集成 Spring Retry 实现容错重试机制并附源码

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

PointNet网络模型代码解析

PointNet网络模型代码解析 T-Net3dT-NetkdFeatNetPointNetCls网络结构可视化 论文地址&#xff1a;https://arxiv.org/pdf/1612.00593 参考代码地址&#xff1a;https://github.com/fxia22/pointnet.pytorch&#xff1b; T-Net3d 首先数据输入为n*3&#xff0c;然后接一个T-n…

windows上安装redis,并且用pycharm联通调用测试

在 Windows 上启动 Redis&#xff0c;官网版本不支持windows直接安装&#xff0c;你可以按照以下步骤进行操作&#xff1a; 使用Github Redis 版本启动 Redis 如果你想使用 Redis 在 Windows 上启动 Redis&#xff0c;以下是基本的步骤&#xff1a; 下载 Redis&#xff1a; 访…

在录制视频的时候,自动出现英伟达(nvidia)显卡弹窗关闭方式

具体情况具体分析&#xff0c;我遇见的是录制视频在视频里面出现弹窗问题 显示效果 在使用录制视频工具进行录制&#xff0c;回放视频的时候&#xff0c;视频会自动弹出英伟达显卡的弹窗&#xff0c;这个我们不需要&#xff0c;就把他关闭 关闭方式 找到GeForce Experienc…