iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java有序链表的合并实现方法
  • 478
分享到

Java有序链表的合并实现方法

Java有序链表合并Java有序链表 2023-05-15 17:05:25 478人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录问题思路版本一版本二答案版本一版本二问题 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4

问题

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

示例 1:

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

示例二:

<strong>输入:</strong>l1 = [], l2 = []
<strong>输出:</strong>[]

示例 3:

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

思路

版本一

  • 新建一个空的链表 nList
  • 在两个链表(l1,l2)都不为空的情况下,比较两个链表的第一个元素的值的大小,取出最小的加入到新链表当中,然后小链表的头指针指向下一位,并且nList的指针也指向下一位
  • 如果两个链表还都不为空,继续循环
  • 如果两个链表有一个为空,那么将不为空的链表拼接到nList后边
  • 最后返回 nList 的next 作为新链表的头结点

版本二

  • 首先判断两个链表是否为空,为空直接返回空链表。不为空的继续向下走
  • 判断 l1 和 l2的头结点谁更小,则将这个节点保存为头结点,后边的节点一次拼接在该节点上边。
  • 后边思路同版本一

答案

版本一

新建一个节点,将原来的链表都传到新的链表当中

public Listnode mergeTwoLists(ListNode list1, ListNode list2) {
    ListNode head = new ListNode(-1);
    ListNode   = head;
    while (list1 != null && list2 != null) {
        boolean b = list1.val <= list2.val;
        all.next = b ? list1 : list2;
        if (b) list1 = list1.next;
        else list2 = list2.next;
        all = all.next;
    }
    all.next = list1 != null ? list1 : list2;
    return head.next;
}

版本二

从原来的链表中选择出来一个进行整合,不适用任何新的内存

public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
    if (list1 == null || list2 == null) {
        return list1 == null ? list2 : list1;
    }
    ListNode head = list1.val <= list2.val ? list1 : list2;
    if (list1.val <= list2.val)
        list1 = list1.next;
    else
        list2 = list2.next;
    ListNode tmp = head;
    while (list1 != null && list2 != null) {
        boolean b = list1.val <= list2.val;
        tmp.next = b ? list1 : list2;
        if (b) list1 = list1.next;
        else list2 = list2.next;
        tmp = tmp.next;
    }
    tmp.next = list1 != null ? list1 : list2;
    return head;
}

到此这篇关于Java有序链表的合并实现方法的文章就介绍到这了,更多相关Java有序链表合并内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java有序链表的合并实现方法

本文链接: https://www.lsjlt.com/news/209280.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java有序链表的合并实现方法
    目录问题思路版本一版本二答案版本一版本二问题 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4...
    99+
    2023-05-15
    Java有序链表合并 Java有序链表
  • Java有序链表怎么合并
    这篇文章主要介绍了Java有序链表怎么合并的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java有序链表怎么合并文章都会有所收获,下面我们一起来看看吧。问题将两个升序链表合并为一个新的升序链表并返回。新链表是通...
    99+
    2023-07-06
  • Java实现合并多个升序链表
    目录前言需求描述思路解析代码实现时间复杂度总结前言 本文主要介绍如何将多个小的升序链表合并一个大的升序链表。 需求描述 给出K个升序链接,要求把这K个升序链表合并成一个,并且这个链表...
    99+
    2023-05-16
    Java 合并升序链表 Java 合并链表
  • Java如何实现合并多个升序链表
    本篇内容介绍了“Java如何实现合并多个升序链表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求描述给出K个升序链接,要求把这K个升序链表...
    99+
    2023-07-06
  • C++怎么实现合并k个有序链表
    本篇内容介绍了“C++怎么实现合并k个有序链表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Merge k Sorted Lists 合并k...
    99+
    2023-06-19
  • C++实现LeetCode(23.合并k个有序链表)
    [LeetCode] 23. Merge k Sorted Lists 合并k个有序链表 Merge k sorted linked lists and retu...
    99+
    2022-11-12
  • 怎么用C++实现合并k个有序链表
    本篇内容主要讲解“怎么用C++实现合并k个有序链表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C++实现合并k个有序链表”吧!Merge k Sorted Lists 合并k个有序链表M...
    99+
    2023-06-20
  • TypeScript合并两个排序链表的方法详解
    目录前言思路分析实现代码测试用例示例代码前言 给定两个递增排序的链表,如何将这两个链表合并?合并后的链表依然按照递增排序。本文就跟大家分享一种解决方案 思路分析 经过前面的学习,我们...
    99+
    2022-11-13
  • C++归并法+快速排序实现链表排序的方法
    本文主要介绍了C++归并法+快速排序实现链表排序的方法,分享给大家,具体如下: 我们可以试用归并排序解决: 对链表归并排序的过程如下。 找到链表的中点,以中点为分界,将链表拆分成...
    99+
    2022-11-12
  • C/C++合并两个升序链表的方式
    目录合并两个升序链表算法的思想代码实现+注释合并K个升序链表(递归方法)归并的思想先来看合并两个有序链表的代码我们再来看合并K个链表的递归方法合并两个升序链表 算法的思想 1.需要合...
    99+
    2022-11-13
  • java实现单链表linked list的方法
    这篇“java实现单链表linked list的方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“java实现单链表linked list的方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望...
    99+
    2023-06-06
  • java实现单链表倒转的方法
    java中有关单链表反转的方法有很多种,这里记录一种并附上详细步骤: 代码如下 public class Solution {     public ListNode revers...
    99+
    2022-11-13
  • C++实现LeetCode(21.混合插入有序链表)
    [LeetCode] 21. Merge Two Sorted Lists 混合插入有序链表 Merge two sorted linked lists and return it ...
    99+
    2022-11-12
  • c++如何实现归并两个有序链表
    目录归并两个有序链表1、题目描述2、设计思路将两个有序链表合并为一个新的有序链表并返回示例在力扣上的提交结果归并两个有序链表 1、题目描述 利用基础题里构建的单链表类创建两个有序的整...
    99+
    2022-11-13
  • Java实现链表数据结构的方法
    什么是链表? 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。每一个链表都包含多个节点,节点又包含两个部分,一个是数据域(储存节...
    99+
    2022-11-12
  • java模拟实现双向链表的方法
    这篇文章主要介绍“java模拟实现双向链表的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java模拟实现双向链表的方法”文章能帮助大家解决问题。双向链表也叫双链表,是链表的一种,它的每个数据结...
    99+
    2023-06-30
  • PHP实现链表的方法
    这篇文章主要介绍了PHP实现链表的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针...
    99+
    2023-06-15
  • 合并Python列表的方法有哪些
    本篇内容介绍了“合并Python列表的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我喜欢12这个数字,因为有太多的事情与12有关...
    99+
    2023-06-15
  • java数据结构中单链表与双向链表的实现方法
    这篇文章主要介绍“java数据结构中单链表与双向链表的实现方法”,在日常操作中,相信很多人在java数据结构中单链表与双向链表的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java数据结构中单链表与...
    99+
    2023-06-20
  • Java实现两个随机数组合并进行排序的方法
    目录前言:一、什么是线性表二、ArrayList集合三、用线性表的思想排序数组间排序四、冒泡排序:前言: ​ 小Du猿结束"996ICP"CRUD开发工作生活,重新进入了...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作