91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java有序鏈表怎么合并

發布時間:2023-04-15 17:42:56 來源:億速云 閱讀:164 作者:iii 欄目:開發技術

這篇文章主要介紹了Java有序鏈表怎么合并的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java有序鏈表怎么合并文章都會有所收獲,下面我們一起來看看吧。

問題

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

示例 1:

Java有序鏈表怎么合并

輸入: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有序鏈表怎么合并”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

根河市| 兴安盟| 山阴县| 西华县| 比如县| 贡嘎县| 迁西县| 吐鲁番市| 平原县| 蚌埠市| 五常市| 塔城市| 银川市| 景德镇市| 平阳县| 海晏县| 扶沟县| 平罗县| 阿荣旗| 登封市| 精河县| 信丰县| 宜良县| 兴和县| 卢龙县| 文水县| 克山县| 南丹县| 竹北市| 温宿县| 玛多县| 旬邑县| 澄江县| 池州市| 嫩江县| 安平县| 巴马| 东兴市| 年辖:市辖区| 丹凤县| 海伦市|