【剑指offer】--- 合并两个已排序的链表

LT9211 单路mipi转双路mipi芯片,方案成熟,提供技术支持 LT9211 单路mipi转双路mipi芯片 阅读详情

题目描述


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


思路

       1.非递归式

             ①:遍历两个链表,先比较两个链表,将值小的节点赋值给合成链表的head,并且让cur指针指上去;

             ②: 继续遍历,进行cur指针的移动,拼接,如果有一个链表跑完,将另一个链表剩下直接挂到cur后面去即可;

       2.递归式

             ①:list1小,就在list1后面添加list1.next和list2合并后的,最后返回list1

             ②:list2小,就在list2后面添加list2.next和list1合并后的,最后返回list2

代码实现

       1. 非递归式

public ListNode Merge(ListNode list1,ListNode list2) {
        //首先需要判断两个链表是否有Null
        if(list1==null){
            return list2;
        }
        if(list2==null){
            return list1;
        }
        //表示合并之后的头结点
        ListNode head = null;
        //用于连接新节点,往后跑
        ListNode cur = null;
        //两个链表都往后跑
        while(list1!=null && list2!=null){
            if(list1.val<=list2.val){
                if(head == null){
                    head = cur = list1;
                }else{
                    cur.next = list1;
                    cur = list1;
                }
                list1=list1.next;
            }else{
                if(head == null){
                    head = cur = list2;
                }else{
                    cur.next = list2;
                    cur=list2;
                }
                list2 = list2.next;
            }
        }
        //将剩下的挂上去
        if(list1!=null){
            cur.next = list1;
        }else{
            cur.next = list2;
        }

        return head;
    }

       2. 递归式实现

public ListNode Merge(ListNode list1,ListNode list2) {
         if(list1 == null){
             return list2;
         }
         if(list2 == null){
             return list1;
         }
         //list1小,就在list1后面添加list1.next和list2合并后的,最后返回list1
         if(list1.val<=list2.val){
             list1.next = Merge(list1.next,list2);
             return list1;
         }else{
         //list2小,就在list2后面添加list2.next和list1合并后的,最后返回list2
             list2.next = Merge(list1,list2.next);
             return list2;
         }
         
     }

 

5G Multicast/Broadcast Services(MBS) (七) MBS广播DRX 当处于RRC_IDLE或RRC_INACTIVE或RRC_CONNECTED 状态时,如果为 G-RNTI 配置了broadcast DRX,则允许MAC entity使用broadcast DRX 操作不连续地监听此G-RNTI的PDCCH;此 G-RNTI 的 drx-onDurationTimerPTM 或 drx-InactivityTimerPTM 正在运行的时间,也就是。long DRX周期drx-LongCycle-PTM和drx-StartOffset-PTM定义DRX周期开始的子帧。 阅读详情

相关推荐

射频捷变收发器(RF Agile Transceiver) 国内外产品的现状、发展趋势及对比分析2

由于通信系统的研究、设计和实现的巨大进步,RF(射频)设备的新时代正在到来。特别是,随着通信、航空航天和防务以及高速仪器仪表、物联网(IoT)和协作传感器网络(CSN)的发展,以实现宽带高速通信,移动通信中频谱上不断增加的数据量要求而采用新颖的解决方案,以动态方式满足流量交换。然而,当前最先进的技术和设备需要一个合理的成熟时间来满足当前和即将到来的通信标准。

legendddh的博客 2609

剑指offer之合并已排序链表(递归实现)

1 问题 合并2个已经排好序的链接,比如 1->3->5->7 2->4->6 合并后新的链表如下 1->2->3->4->5->6->7 2 代码实现 #include <stdio.h> typedef struct Node { int val; ...

码莎拉蒂 2348

PX4代码解析(1)

前言 做pixhawk飞控有一段时间了,但在学习过程中遇到许多困难,目前网上找不到比较完整的PX4学习笔记,我打算结合自己理解,写写自己对PX4源码的理解,不一定对,只是希望与各位大佬交流交流,同时梳理一下无人机知识。 目前打算分享以下几个内容:代码架构;通信协议;姿态解算算法,控制算法。先这样,后面想到再加。本章先来聊聊px4代码结构 一、代码整体结构 既然要聊px4代码结构,那就先把px4代码结构图放出来,因为px4源码仍然在不断更新迭代,因此老版本与新版本目录结构可能有些不同,我的代码解析参考版本为V

qq_36903625的博客 1万+

剑指Offer15 合并两个已排序链表

1 /************************************************************************* 2 > File Name: 15_MergeTwoSortList.cpp 3 > Author: Juntaran 4 > Mail: JuntaranMail@gmail...

dingrong3926的博客 109

COMSOL实战:薄膜声学超材料模态分析全流程解析(含预应力设置技巧)

本文详细解析了使用COMSOL进行薄膜声学超材料模态分析的全流程,包括预应力设置技巧和共振频率优化方法。通过实际案例和参数设置指南,帮助工程师掌握从几何建模到结果解读的关键步骤,特别适合声学超材料和共振薄膜结构的设计与优化。

ujm5678901的博客 292

ST电机库实战:从状态机到稳健启动流程的深度解析

本文深度解析了ST电机库中状态机的核心作用与稳健启动流程。状态机作为电机控制的“交通指挥官”,通过IDLE、CHARGE_BOOT_CAP、ALIGNMENT等一系列状态的严格跳转,确保了永磁同步电机(PMSM)和直流无刷电机(BLDC)的安全启动与可靠运行,是避免硬件损坏和实现平稳控制的关键。

weixin_29161785的博客 226

剑指offer之合并两个已排序好的链表

问题:输入两个单调递增的链表,输出两个链表合成后的链表,并满足合成后的链表单调不减规则。思路:既然输入的链表已经单调递增,那就采取“递归”逐一比较合成是最直接的方法。具体代码:(C++)struct ListNode{    int val;    ListNode* next;    ListNode(int x):val(x),next(nullptr){}};class Solution{ ...

瀛洲客的博客 205

Material Studio中分子动力学模拟得到密度density和溶解度参数

使用sketh工具画出全原子分子,以异辛烷为例子。

handsome213的博客 7317

JAVA实现合并两个排序的链表(《剑指offer》)

题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解答: /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ publ

遥同学的博客 7708

【VisualStdio】手把手教你做一个上位机(1)控件设计布局

网上有很多形形色色的制作上位机教程,有些写的挺好的,但是过于单调。

m0_73409202的博客 5435

若依框架二次开发——若依 Vue3 版本前端样式优化指南

若依框架二次开发——若依 Vue3 版本前端样式优化指南

bjzhang75的博客 1692

剑指offer(面试题17):合并两个已排序的链表

我们要做的就是合并两个有序链表,使之合并之后依旧有序 那么我们要怎么做呢首先我们从合并链表的头结点开始,首先链表1的头结点的值小于链表2的头结点的值,因此合并后新链表的头结点即链表1的头结点, 然后我们继续往后遍历,画图如下 就这样按图上的一直往下遍历,那遍历结束的标志又是什么呢 就是只要是任意一个链表已经遍历完了,cur指针指向空的时候,将另一个没有遍历完的链表直接加到新链表的后面就行,因

呼的一声飞得好远好远 249

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

剑指Offer(十六):合并两个排序的链表

剑指Offer(十六):合并两个排序的链表 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多算法、机器学习干货 csdn:https://blog.youkuaiyun.com/baidu_31657889/ github:https://github.com/aimi-cn/AILearners 一、引子 这个系列是我在牛客网上刷《剑指Offer》的刷题笔记,旨在提升下自己...

小明的博客 633

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

剑指offer系列——剑指 Offer 25. 合并两个排序的链表

大家好!本篇文章将介绍关于数据结构之链表的OJ题,来自力扣:21. 合并两个有序链表 或 剑指 Offer 25. 合并两个排序的链表 题解,展示代码语言暂时为:Java语言与C语言。(后续会更新C++代码)

未见花闻的博客 2197

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

剑指offer 合并两个有序链表

剑指offer 合并两个有序链表 1.迭代法 /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} *

weixin_42067565的博客 96

合并两个排序的链表

剑指offer,我要把所有的链表问题做一遍 其实这里合并链表和和并数组差不多吧,我感觉 假如说是从小往大排序,那么两个节点谁小,待插入指针就指向哪个节点,这里就是用MergeHead来指的,谁小,谁就作为MergeHead的next。 public class Main { Node Merge(Node head1,Node head2){ if(head1=...

MONKEY_Quan的博客 232

【剑指offer25】【C++】合并两个排序的链表【双指针遍历】

【剑指offer25】【C++】合并两个排序的链表【双指针遍历】题目题解 题目 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 限制: 0 <= 链表长度 <= 1000 题解 笔记 思路: 1.初始化新链表 2.p1指针指向原排序链表1,p2指针指向原排序链表2 3.当p1和p2不为空时,比较val大小,小的放进新链表,然后

程序员阿浪 347

剑指 Offer(第2版)面试题 25:合并两个排序的链表

剑指 Offer(第2版)面试题 25:合并两个排序的链表

ProgramNovice的博客 525

剑指 Offer 25. 合并两个排序的链表

剑指 Offer 25. 合并两个排序的链表 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 限制: 0 <= 链表长度 <= 1000 注意:本题与主站 21 题相同:https://leetcode-cn.com/problems/merge-two-sorted-lists/ 通过次数45,068 提交次数6

ujn20161222的博客 104

《剑指offer》面试题17:合并两个排序链表(java实现)

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。 ——来源于《剑指offer》 循环实现 package com.qianyu.jianzhioffer.connectTwoLinklists; /** * @author lijing * @date 2019-07-29-10:04 * @discription 合并两个有序链表 */ p...

芊雨的博客 274

剑指offer打卡Day17:合并两个排序的链表

剑指offer打卡Day17:合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 示例 输入 {1,3,5},{2,4,6} 返回值 {1,2,3,4,5,6} 解析: 递归: 用剑指OFFER中的解析图表示: 递归过程: 建立新的头节点res res.next 指向 list.val较小的链表 递归调用步骤2,返回由新建的头节点建立的新数组 实践出真知: TALK IS CHEAP,SHOW U MY

COOLGWAYNE_TECH_BLOG 160

【编程题】合并两个排序的链表(Java实现)

【编程题】合并两个排序的链表(Java实现) 题目来源 剑指offer第16题 https://www.nowcoder.com/questionTerminal/d8b6b4358f774294a89de2a6ac4d9337## 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题目代码 /* public class ListNode {...

qq_40432108的博客 394

C++s合并两个链表(牛客剑指offer)

/////这段代码不忍直视,想不通这样在牛客剑指offer上都可以通过.。 #include using namespace std; struct ListNode { int val; struct ListNode *next; ListNode(int x):val(x),next(NULL){} }; void show(ListNode *root); class So

liuhuiyan_2014的专栏 678

《剑指offer》【剑指Offer 25.合并两个排序的链表】

🏆个人主页:企鹅不叫的博客 ​ 🌈专栏 C语言初阶和进阶 C项目 Leetcode刷题 初阶数据结构与算法 C++初阶和进阶 《深入理解计算机操作系统》 《高质量C/C++编程》 ⭐️ 博主码云gitee链接:代码仓库地址 ⚡若有帮助可以【关注+点赞+收藏】,大家一起进步! 文章目录💎一、题目🏆1.题目描述🏆2.原题链接💎二、解题报告🏆1.思路分析🏆2.代码详解 💎一、题目 🏆1.题目描述 🏆2.原题链接 剑指Offer 25.合并两个排序的链表 💎二、解题报告 🏆1.思路分析 🔑思.

YQ20210216的博客 1556

合并两个排序的链表 牛客网 剑指Offer

合并两个排序的链表 牛客网 剑指Offer 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: #run:2...

DarrenXf的专栏 217

剑指offer25 . 合并两个排序的链表 P145

剑指offer25 . 合并两个排序的链表 P145 每次比较两个链表表头,那个小,哪个就是当前节点mergeHead,然后把剩下的链表继续合并,找这个mergeHead的下一个节点。 ListNode* mergeSortedLinkedList(ListNode *head1, ListNode *head2) { // 任一个链表比较完,把剩下的直接加到当前合并的链表尾 if (hea...

lonelyVM的博客 167
上一篇: 【剑指offer】 --- 旋转数组中找最小数字
下一篇: 【剑指offer】--- 判断一颗二叉树是否为平衡二叉树
Beat_Boxer
博客等级 码龄9年 18粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值