16 合併兩個排序的鍊錶

2021-09-24 15:37:51 字數 845 閱讀 3992

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

總結:要建立乙個新的頭結點,如果直接在l1(l2)上修改,鍊錶就會被更改,還要涉及到儲存結點,會使得問題複雜化。建立新的頭結點之後,每次都向後挪動一位,並且插入l1(l2)中的小值,對應的鍊錶挪動一位。

tips:發現只要是涉及到新增、刪除的鍊錶問題,建立dummy結點的方法可以省去很多判斷。

leetcode對應題目:

88. 合併兩個有序陣列            解答:合併兩個有序陣列

23. 合併k個排序鍊錶             解答:歸併的思想,**在下面

/*

struct listnode

};*/

class solution

else

node = node->next;

}if(!phead1)

if(!phead2)

return newhead->next;

}};

合併k個有序鍊錶

class solution 

else

dummy = dummy->next;

}if(l1) dummy->next = l1;

if(l2) dummy->next = l2;

return l->next;

}listnode* mergeklists(vector& lists)

};

16 合併兩個排序的鍊錶

題目 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。思路 與歸併排序思路相同。用到了乙個小技巧,宣告頭節點時,不宣告為null,使資料域為0,返回時返回head.next,這樣在 不需要先給head賦值,比較簡潔。public class solutio...

16 合併兩個排序的鍊錶

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。python 方法1 遞迴 class solution 返回合併後列表 defmerge self,phead1,phead2 if phead1 is none return phead2 el...

16 合併兩個排序的鍊錶 python

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。1 class solution 2 返回合併後列表 3def merge self,phead1,phead2 4 write code here 5 dummy p listnode 1 6while p...