合併排序鍊錶(劍指offer)
struct listnode
listnode * mergelist (listnode * pheadlist1,listnode * pheadlist2)
//判斷指標是否為空
if (pheadlist2==
null)
listnode * pmergelisthead=
null;//合併後的節點
if(pheadlist1->m_nvalue < pheadlist2->m_nvalue)
else
return pmergelisthead;
}//因為每次都是頭節點比較,故可以考慮遞迴演算法,只要保證有效的結束條件,就可完成。
劍指offer 合併排序鍊錶
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。比較節點大小,小的一方放到新建鍊錶後,將其向後移動。注意判空以及後續處理。遞迴 public listnode merge listnode list1,listnode list2 if list2 nul...
劍指offer 合併鍊錶
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減的規則。非遞迴版本 struct listnode class solution else current head while phead1 null phead2 null else 若其中乙個鍊錶遍歷完成,則...
劍指offer 樹的子結構 合併排序鍊錶
一直對遞迴用的太機械,每寫乙個遞迴都想一下子想到方方面面,扣清除每個位置的語句執行時會發生什麼,本是優點,但是由於遞迴的深度,完全靠大腦想象整個過程相當複雜。最近看到了劍指offer上的兩個遞迴題 我想過用別的方法,但是沒想出來,也沒查出來,而且好的遞迴函式邏輯性很強 感覺如果建模建的好,邏輯清晰,...