樹 自頂向下思路和自底向上思路求樹的最大深度

2021-10-11 22:48:29 字數 747 閱讀 7699

import

static sun.swing.menuitemlayouthelper.max;

class

treenode

treenode

(int val)

treenode

(int val, treenode left, treenode right)

}// 自底向上解法

class

maxdepth

}// 自頂向下解法

class

maxdepth2

generatedepth

(root.left,depth+1)

;generatedepth

(root.right,depth+1)

;}}class

test

}

總結

了解遞迴並利用遞迴解決問題並不容易。

當遇到樹問題時,請先思考一下兩個問題:

你能確定一些引數,從該節點自身解決出發尋找答案嗎?

你可以使用這些引數和節點本身的值來決定什麼應該是傳遞給它子節點的引數嗎?

如果答案都是肯定的,那麼請嘗試使用 「自頂向下」 的遞迴來解決此問題。

或者你可以這樣思考:對於樹中的任意乙個節點,如果你知道它子節點的答案,你能計算出該節點的答案嗎? 如果答案是肯定的,那麼 「自底向上」 的遞迴可能是乙個不錯的解決方法。

自頂向下和自底向上,力扣

自底向上和自頂向下

動態規劃的式子都是狀態p由狀態q1 q2 q3 之中選擇乙個或幾個計算出來的形式,但是如果一直是一些狀態這樣遞迴下去,最後會無限迴圈的,所以每個式子一直寫下去最後都會得到一些狀態p是常數 遞迴邊界 的形式。以上可構造乙個dag 自底向上就是已經知道了所有遞迴邊界,把所有可能的狀態都算出來。基本步驟是...

自頂向下和自底向上理解程式設計

example 客戶端程式如何從服務端取資料?自頂向下理解 客戶端想要動態地獲取資料 比如使用者手勢 點選等事件觸發 通過呼叫服務即可 如wcf service,rest service domainservice 等 取到資料後 如json 反序列化到客戶端相應的model類中 而服務幫助我們完成...

自頂向下和自底向上的歸併排序區別

歸併排序中最基本的操作是 歸併 即將兩個 2 路歸併 或兩個以上的有序陣列組合成乙個更大的有序陣列。按照歸併順序的不同,歸併排序可以分為自頂向下和自底向上兩類。自頂向下的歸併排序進行的操作主要就是對陣列的拆分與合併。通過層層拆分得到單元素陣列,天生有序,然後歸併兩個單元素陣列得到乙個較大的有序陣列,...