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

新英格兰10机39节点matlab建模,ieee10机39节点系统数据 【实例简介】ieee10机39节点系统数据,主要是BPA数据!【实例截图】【核心代码】ne_039_bus└── ne_039_bus├── 039readme.doc├── bpa│ ├── 039bpa.dat│ ├── 039bpa.swi│ ├── LFerr.LIS│ ├── OneNote 目录.onetoc2│ └── STERR.LIS├── eurostag│... 阅读详情

题目描述


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


思路

       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;
         }
         
     }

 

【电子通识】TINA-TI怎么使用受控源向导创建受控源 TINA-TI怎么使用受控源向导创建受控源 阅读详情

相关推荐

基于BS21的星闪模块设计电路SLE/BLE

基于BS21的星闪模块设计电路SLE/BLE HI2821

2503_91889531的博客 2738

剑指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

【Benchmark 性能测试全指南:从核心原理到 CINEBENCH 实战解析】

本文深度拆解基准测试(Benchmark)的底层逻辑,详解数据集、工作负载、度量指标三大核心要素,分步演示测试流程与统计分析要点。结合 CINEBENCH R23 实战案例,揭秘 CPU 性能评估方法论,助你掌握系统性能量化与优化的核心技能。

rong_ha_ha的博客 6327

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

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

dingrong3926的博客 109

手把手教 - VSCode 开发 GD32F450 单片机

系统版本:rt-thread v5.2.2单片机型号:GD32F450ZK基于文章进行开发。

weixin_46158019的博客 839

命令行删除描述文件_写一个删除lock文件的skill脚本

来源:IC技能搬运工 作者:小目Cadence软件使用过程中偶尔会遇到文件被lock的情况,这是Cadence软件对文件的一种保护措施,大部分情况都是对用户友好的,但是偶尔也会给用户带来困扰,给工作带来的一定的不便。文件是如何被锁的Cadence在用户打开文件进行编辑的时候会在文件的同一级目录新建一个lock文件,用来标识文件的状态。一般情况下如果文件被正常关闭,这个lock文件会在...

weixin_39781452的博客 1352

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

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

瀛洲客的博客 205

AI大模型与碳足迹评估结合模式及示范案例

AI大模型与碳足迹评估相结合,可以提供更精确、更快速的碳排放量计算,优化减排策略,并促进可持续发展目标的实现。

贾贾的博客 3943

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

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

遥同学的博客 7708

Keil5安装多版本共存方案:实用技巧分享

分享Keil5安装过程中实现多版本共存的实用方法,解决开发环境冲突问题。通过合理配置路径与版本管理,让keil5安装更高效稳定,提升嵌入式开发体验。

weixin_42514750的博客 1526

链接文件及功能安全:基于Tasking的LSL链接文件知识点梳理及实际应用分析

本文旨在记录研究链接文件时所遇到的问题及个人理解,以便日后查阅。在探索过程中,我遇到了诸多问题,同时对链接文件有了初步的认识。通过记录这些问题与理解,我希望能够为后续的研究提供清晰的思路和有价值的参考。这不仅是对研究过程的总结,更是对未来学习和实践的有力支持。

梦想技术家 1103

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

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

呼的一声飞得好远好远 249

AES-128-CMAC:背景、汽车应用、CAPL 实现与开源工具验证

本文详解车载诊断中AES-128-CMAC算法的原理与应用,涵盖其在UDS安全访问、刷写鉴权、SecOC认证及密钥派生中的核心作用。结合真实汽车电子场景,提供纯CAPL实现代码与测试脚本,并通过pycryptodome进行逐字节验证,确保算法正确性。全程基于CANoe实测数据,可直接用于HIL环境复现,助力开发者高效落地汽车网络安全方案。

蚂蚁小兵 113

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

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

小明的博客 633

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

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

未见花闻的博客 2197

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

剑指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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

合并两个排序的链表

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值