最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java有序鏈表的合并實(shí)現(xiàn)方法

 更新時(shí)間:2023年04月13日 10:06:51   作者:ziop-三月  
這篇文章主要通過兩個(gè)例題為大家介紹一下Java合并兩個(gè)及以上有序鏈表的實(shí)現(xiàn)方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下

問題

將兩個(gè)升序鏈表合并為一個(gè)新的升序鏈表并返回。新鏈表是通過拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。

示例 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]

思路

版本一

  • 新建一個(gè)空的鏈表 nList
  • 在兩個(gè)鏈表(l1,l2)都不為空的情況下,比較兩個(gè)鏈表的第一個(gè)元素的值的大小,取出最小的加入到新鏈表當(dāng)中,然后小鏈表的頭指針指向下一位,并且nList的指針也指向下一位
  • 如果兩個(gè)鏈表還都不為空,繼續(xù)循環(huán)
  • 如果兩個(gè)鏈表有一個(gè)為空,那么將不為空的鏈表拼接到nList后邊
  • 最后返回 nList 的next 作為新鏈表的頭結(jié)點(diǎn)

版本二

  • 首先判斷兩個(gè)鏈表是否為空,為空直接返回空鏈表。不為空的繼續(xù)向下走
  • 判斷 l1 和 l2的頭結(jié)點(diǎn)誰更小,則將這個(gè)節(jié)點(diǎn)保存為頭結(jié)點(diǎn),后邊的節(jié)點(diǎn)一次拼接在該節(jié)點(diǎn)上邊。
  • 后邊思路同版本一

答案

版本一

新建一個(gè)節(jié)點(diǎn),將原來的鏈表都傳到新的鏈表當(dāng)中

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

版本二

從原來的鏈表中選擇出來一個(gè)進(jìn)行整合,不適用任何新的內(nèi)存

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

到此這篇關(guān)于Java有序鏈表的合并實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Java有序鏈表合并內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的流程步驟

    SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的流程步驟

    優(yōu)雅停機(jī)(Graceful Shutdown) 是指在服務(wù)器需要關(guān)閉或重啟時(shí),能夠先處理完當(dāng)前正在進(jìn)行的請求,然后再停止服務(wù)的操作,本文給大家介紹了SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的流程步驟,需要的朋友可以參考下
    2024-03-03
  • maven項(xiàng)目引用外部jar包的方法

    maven項(xiàng)目引用外部jar包的方法

    本篇文章主要介紹了maven項(xiàng)目引用外部jar的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java實(shí)現(xiàn)多線程斷點(diǎn)下載實(shí)例代碼(下載過程中可以暫停)

    Java實(shí)現(xiàn)多線程斷點(diǎn)下載實(shí)例代碼(下載過程中可以暫停)

    線程可以理解為下載的通道,一個(gè)線程就是一個(gè)文件的下載通道,多線程也就是同時(shí)開啟好幾個(gè)下載通道,Java實(shí)現(xiàn)多線程斷點(diǎn)下載實(shí)例代碼(下載過程中可以暫停),有興趣的可以了解一下。
    2016-12-12
  • 詳細(xì)講解Java中==與equals的區(qū)別對比

    詳細(xì)講解Java中==與equals的區(qū)別對比

    這篇文章主要為大家詳細(xì)介紹了Java中==與equals的區(qū)別對比,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,感興趣的同學(xué)可以參考閱讀下
    2023-09-09
  • java TreeMap源碼解析詳解

    java TreeMap源碼解析詳解

    這篇文章主要介紹了java TreeMap源碼解析詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringBoot中四種常用的條件裝配技術(shù)詳解

    SpringBoot中四種常用的條件裝配技術(shù)詳解

    Spring?Boot提供了多種條件裝配技術(shù),允許開發(fā)者根據(jù)不同條件動態(tài)配置應(yīng)用程序,本文將介紹Spring?Boot中四種常用的條件裝配技術(shù),需要的可以參考下
    2025-04-04
  • SpringBoot實(shí)現(xiàn)Read Through模式的操作過程

    SpringBoot實(shí)現(xiàn)Read Through模式的操作過程

    Read Through模式通常是指一種緩存策略,其中當(dāng)應(yīng)用程序嘗試讀取數(shù)據(jù)時(shí),緩存系統(tǒng)首先被檢查以查看數(shù)據(jù)是否已經(jīng)存在于緩存中,這篇文章主要介紹了SpringBoot實(shí)現(xiàn)Read Through模式,需要的朋友可以參考下
    2024-07-07
  • 用JAVA實(shí)現(xiàn)單鏈表,檢測字符串是否是回文串

    用JAVA實(shí)現(xiàn)單鏈表,檢測字符串是否是回文串

    這篇文章主要介紹了使用JAVA實(shí)現(xiàn)單鏈表,檢測字符串是否是回文串,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Java Fluent Mybatis 分頁查詢與sql日志輸出詳解流程篇

    Java Fluent Mybatis 分頁查詢與sql日志輸出詳解流程篇

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個(gè)新的mybatis增強(qiáng)框架 fluent mybatis關(guān)于分頁查詢、sql日志輸出流程
    2021-10-10
  • 深入理解JSON及其在Java中的應(yīng)用小結(jié)

    深入理解JSON及其在Java中的應(yīng)用小結(jié)

    json它是一種輕量級的數(shù)據(jù)交換格式,由于其易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,因此廣泛應(yīng)用于網(wǎng)絡(luò)數(shù)據(jù)交換和配置文件,這篇文章主要介紹了深入理解JSON及其在Java中的應(yīng)用,需要的朋友可以參考下
    2023-12-12

最新評論

宁南县| 庐江县| 蓝田县| 全椒县| 静乐县| 奉新县| 东莞市| 德昌县| 称多县| 上饶市| 云和县| 武宁县| 诏安县| 阳新县| 贵州省| 肃北| 邢台市| 读书| 新野县| 富源县| 濮阳市| 南康市| 宣化县| 芦山县| 德格县| 来安县| 蓬安县| 阳西县| 新兴县| 华池县| 奎屯市| 涡阳县| 福泉市| 洮南市| 峡江县| 建水县| 临沭县| 乐安县| 普宁市| 娱乐| 休宁县|