將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:
輸入:1->2->4, 1->3->4初始狀態輸出:1->1->2->3->4->4
首先確定拼接後的新鍊錶的頭結點應當是兩個鍊錶中小的那個值
上述的綠色節點就是我們確定的頭結點,那麼如下**即可完成
if
(l1.val < l2.val)
else
如下圖,找到頭結點的綠色節點的下乙個節點該如何確認呢?
剩餘的2個鍊錶生成乙個新的有序鍊錶給到綠色節點不就大功告成?
仔細一看臥槽?不就是繞回到題目的要求了?
qnm,把題目的函式弄過來用就完事了!!!
l1.next =
mergetwolists
(l1.next,l2)
;
l2.next =
mergetwolists
(l1,l2.next)
;
這不就大工告成了嗎,嘻嘻,真機靈。
啪~醒醒吧!
兩個序列沒有用完的時候嗎?
好吧!如果哪個序列用完==剩下的序列直接點返回不就好了嘛,都不要取找新的有序序列了好吧,剩下的就是有序的,給爺返回!
完整**
/**
* definition for singly-linked list.
* public class listnode
* listnode(int val)
* listnode(int val, listnode next)
* }*/class
solution
else
}}
LeetCode 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4class solution else listnode p new head while l1 null l2 null else p p ne...
LeetCode 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 struct listnode mergetwolists struct listnode l1,struct listnode l2 els...
leetcode 合併兩個有序鍊錶
definition for singly linked list.public class listnode class solution if l2 null listnode retnode null listnode temnode null while l1 null l2 null el...