輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。
總結:要建立乙個新的頭結點,如果直接在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...