合併兩個排序的鍊錶

2021-10-08 22:20:22 字數 546 閱讀 3040

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

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

2.1  思路分析

新建結點head作為合併鍊錶的頭結點,使用cur指向該頭結點;

遍歷兩個鍊錶,若l1.val < l2.val,那麼cur.next = l1,並更新l1,否則令cur.next = l2,並更新l2,然後更新cur的指向,直到l1或l2有乙個為null為止;

最後判斷若其中乙個為null,乙個不為null,那麼將不為null的鍊錶接到cur的後面;

最後返回head.next就是合併後的鍊錶。

2.2  **實現

class solution  else 

cur = cur.next;

}if(l1 != null) else if(l2 != null)

return res.next;

}}

2.3  複雜度分析

合併兩個排序鍊錶

struct listnode class solution else while pstart1 null pstart2 null plast next pstart1 plast pend1 pend1 pend1 next pstart1 pend1 else plast next psta...

合併兩個排序鍊錶

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...

合併兩個排序鍊錶

問題描述 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...