牛客網OJ題 合併兩個有序鍊錶

2021-10-01 04:20:36 字數 780 閱讀 9743

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

定義乙個新的鍊錶,用來存放合併後的鍊錶,並記錄該鍊錶的頭結點。

1.判斷list1是否為空,如果為空直接返回list2。同樣,判斷list2是否為空,如果為空直接返回list1。

2.當list1和list2同時都不為空時,開始迴圈比較list1和list2的val值,比較誰的值最小,list就存放誰的值。存放後,鍊錶向後移動。

3.當退出迴圈也就意味著有乙個鍊錶為空了,此時在次判斷,哪乙個鍊錶為空。如果list1 為空,那麼把list2剩下的左右節點都給list。反之,如果list2 為空,那麼把list1剩下的左右節點都給list。

4.返回開始記錄的頭結點的next值即可。(頭結點是null,他的next節點才是我們需要的返回的新的鍊錶的頭指標)

public class contactlinkedlist 

}public listnode merge(listnode list1,listnode list2)

if(list2 == null)

while(list1 != null && list2 != null)else

list = list1.next;

}if(list1 != null)

if(list2 != null)

return head.next;

}}

牛客網11 合併兩個排序的鍊錶

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。class listnode def init self,x self.val x self.next none class solution 返回合併後列表 defmerge self,phead...

兩個鍊錶生成相加鍊錶 牛客網演算法題

題目 假設鍊錶中每乙個節點的值都在 0 9 之間,那麼鍊錶整體就可以代表乙個整數。給定兩個這種鍊錶,請生成代表兩個整數相加值的結果鍊錶。例如 鍊錶 1 為 9 3 7,鍊錶 2 為 6 3,最後生成新的結果鍊錶為 1 0 0 0。示例1輸入 複製 9,3,7 6,3 返回值複製 說下我的思路 1.相...

合併兩個有序鍊錶

鍊錶的題目總是讓我很惆悵。動輒就會runtime error。比如這題,額外用了乙個節點的空間來儲存頭節點。我很不情願多用這個空間,不過貌似不行。貌似不行,實際可行,見附錄。把頭節點提出迴圈 實現類 class solution else if l1 null p next l1 if l2 nul...