合併排序鍊錶(劍指offer)

2021-07-27 11:17:09 字數 403 閱讀 5054

合併排序鍊錶(劍指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上的兩個遞迴題 我想過用別的方法,但是沒想出來,也沒查出來,而且好的遞迴函式邏輯性很強 感覺如果建模建的好,邏輯清晰,...