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

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

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

問題

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

示例 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的指針也指向下一位
  • 如果兩個鏈表還都不為空,繼續(xù)循環(huán)
  • 如果兩個鏈表有一個為空,那么將不為空的鏈表拼接到nList后邊
  • 最后返回 nList 的next 作為新鏈表的頭結點

版本二

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

答案

版本一

新建一個節(jié)點,將原來的鏈表都傳到新的鏈表當中

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

版本二

從原來的鏈表中選擇出來一個進行整合,不適用任何新的內(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;
}

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

相關文章

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

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

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

    maven項目引用外部jar包的方法

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

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

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

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

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

    java TreeMap源碼解析詳解

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

    SpringBoot中四種常用的條件裝配技術詳解

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

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

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

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

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

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

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

    深入理解JSON及其在Java中的應用小結

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

最新評論

安庆市| 女性| 保靖县| 海兴县| 靖江市| 微山县| 满洲里市| 嫩江县| 雷山县| 永登县| 朔州市| 梁平县| 缙云县| 砚山县| 高陵县| 合山市| 娄烦县| 马公市| 绥中县| 和顺县| 沭阳县| 鲁甸县| 清镇市| 邵阳县| 阿尔山市| 同心县| 安宁市| 衢州市| 和政县| 霞浦县| 顺昌县| 惠来县| 西平县| 蓬溪县| 新乐市| 博湖县| 昆山市| 张家口市| 秭归县| 海晏县| 临沭县|