LeetCode第11題有序鍊錶的合併

2021-09-26 06:45:24 字數 956 閱讀 2303

今天在力扣上看到乙個比較有意思的題,雖然比較簡單,但是用的方法感覺眼前一亮。

題目是這樣的:

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。

示例:輸入:1->2->4, 1->3->4

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

這裡用迭代的思想進行求解:假設存在的兩個鍊錶是兩個國家,這兩個國家是相互依存的關係,若乙個國家為空了,則戰爭結束。這時定義乙個哨兵節點head,該哨兵用於儲存開始節點,用於返回最終的結果,而另一邊定義乙個pre,用於衝鋒陷陣,也就是分別比較兩個節點在當前節點處的值的大小,找到其中較小的那個數值節點,建立pre到該節點的鏈路,然後節點下移一位,pre同樣也移動到新的節點位置,反覆進行上述步驟,並且當其中有乙個鍊錶的節點為空的時候,結束當前迴圈,這是判斷出是哪個鍊錶為空,然後建立pre到該節點的鏈路即可。不多說,直接上**。

class listnodes }	

public class code21

else if (l2 == null)

else if (l1.val < l2.val)

else

}/利用迭代的思想進行求解

public static listnodes solution(listnodes l1, listnodes l2)

else

pre = pre.next;機動部隊到新的位置

} pre.next = l1==null?l2:l1; 到大這裡說明兩個鍊錶中有乙個出現了空,將當前節點的連線的下乙個節點連線到非空鍊錶的第乙個節點的位置

return m.next; ///返回哨兵節點

} public static void print(listnodes node) }

public static void main(string args)

}

leetcode第21題 合併兩個有序鍊錶

題目描述 將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 l1 1,2,4 l2 1,3,4 輸出 1,1,2,3,4,4 思路解析 遞迴法 根據以上規律考慮本題目 終止條件 當兩個鍊錶都為空時,表示我們對鍊錶已合併完成。如何遞迴 我們判斷...

LeetCode第141題 環形鍊錶

給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。defini...

LeetCode第141題環形鍊錶

題目描述 給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。解題思路 1 初步想法 沒有想法,估計是沒怎麼接觸鍊錶的題,看到別人的 用了兩個變數,乙個變數走一步,乙個變數走兩步,...