題目:將兩個遞增的單鏈表合併成乙個遞增的單鏈表
可以用遞迴和迴圈兩種方法實現。
//劍指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...