中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

leetcode中怎么合并兩個排序的鏈表

發布時間:2021-08-12 14:41:35 來源:億速云 閱讀:114 作者:Leah 欄目:大數據

leetcode中怎么合并兩個排序的鏈表,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

題目

輸入兩個遞增排序的鏈表,合并這兩個鏈表并使新鏈表中的節點仍然是遞增排序的。

示例1:

輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4

限制:

0 <= 鏈表長度 <= 1000

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

題解

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode newHead = new ListNode(-1);
        ListNode cursor = newHead;
        while(l1 != null && l2 != null) {
            if (l1.val <= l2.val) {
                cursor.next = l1;
                l1 = l1.next;
            } else {
                cursor.next = l2;
                l2 = l2.next;
            }
            cursor = cursor.next;
        }

        if (l1 == null) {
            cursor.next = l2;
        }

        if (l2 == null) {
            cursor.next = l1;
        }

        return newHead.next;
    }
}
  • 這里先創建一個newHead節點來表示合并后鏈表的頭指針,然后創建一個cursor,其初始值為newHead;之后同時遍歷l1及l2,取最小的作為cursor.next,同時該鏈表前進一個節點,并且cursor跟著前進;最后再將cursor.next指向尚未遍歷完的鏈表的剩余節點;之后返回頭指針指向的節點

小結

合并兩個有序鏈表的基本思路就是設置一個cursor以及新鏈表的頭指針,然后同時遍歷兩個鏈表,取小的節點作為cursor的next,然后該鏈表往前進,cursor也跟著往前進,最后再將cursor.next指向尚未遍歷完的鏈表的剩余節點

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

婺源县| 和硕县| 巴彦淖尔市| 共和县| 大理市| 怀远县| 广元市| 舟山市| 新兴县| 江都市| 和龙市| 铜梁县| 商丘市| 常州市| 嘉义县| 伊吾县| 日照市| 台东县| 九寨沟县| 无棣县| 乾安县| 沅江市| 邵东县| 万年县| 台东市| 溧阳市| 资兴市| 普兰县| 手游| 淮滨县| 垫江县| 拉孜县| 广南县| 衡水市| 安福县| 东安县| 分宜县| 荆门市| 嵊州市| 霍州市| 时尚|