劍指Offer 有序鍊錶的合併

2021-07-14 09:28:23 字數 479 閱讀 7366

題目:將兩個遞增的單鏈表合併成乙個遞增的單鏈表

可以用遞迴和迴圈兩種方法實現。

//劍指offer:兩個遞增的單鏈表,合併成乙個遞增的單鏈表

#include using namespace std;

struct listnode

;//方法一:遞迴,另建乙個新的鍊錶,儲存值

listnode *merge1(listnode *phead1,listnode *phead2)

else

return phead;

}

//方法二:迴圈法,將鍊錶2插入到鍊錶1中

listnode *merge2(listnode *phead1,listnode *phead2)

else

}if(r==null) p->next=q;

return p;

}

劍指offer 合併鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減的規則。非遞迴版本 struct listnode class solution else current head while phead1 null phead2 null else 若其中乙個鍊錶遍歷完成,則...

劍指offer 合併兩個有序鍊錶

依次比較兩個鍊錶的首結點,取較小的的結點放到第三個鍊錶尾,同時移動較小節點所在鍊錶的指標指向下乙個節點。步驟一結果會有乙個鍊錶先遍歷結束 第三個鍊錶尾結點指向剩餘未遍歷結束的鍊錶 返回第三個鍊錶首結點 struct listnode class solution else merlist merli...

劍指offer 合併兩個有序鍊錶

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。參考思路 逐個比較兩個鍊錶的第乙個結點,將結點值小的那個結點新增到乙個新的鍊錶上。直到最後乙個兩個鍊錶都合併到新的鍊錶上結束。參考 public class listnode public clas...