給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的距離。
如果二叉樹為空,則深度為0
如果不為空,分別求左子樹的深度和右子樹的深度,去最大的再加1,因為根節點深度是1,要加進去。
int maxdepth(treenode *root)
給定乙個二叉樹,找出其最小深度。
二叉樹的最小深度為根節點到最近葉子節點的距離。
剛開始拿到這道題,就想不是很簡單嗎,不就是最大深度的**改為最小就行了嗎? 這樣做的結果就是有些測試時通不過的。
因為如果出現斜樹的情況,也就是說只有左子樹,或只有右子樹的時候,如果按照剛才說的那個演算法來實現的話,得出的答案是0,明顯是錯誤的。
兩種實現方法,一種就是計算左子樹和右子樹深度的時候,判斷是否等於0,如果等於0,說明該子樹不存在,深度賦值為最大值。
第二種就是判斷左子樹或右子樹是否為空,若左子樹為空,則返回右子樹的深度,反之返回左子樹的深度,如果都不為空,則返回左子樹和右子樹深度的最小值
int mindepth(treenode *root)
int mindepth(treenode *root)
(97) maximum depth of binary tree
(155) minimum depth of binary tree
二叉樹 最大深度和最小深度
leetcode 二叉樹的最大深度 leetcode 二叉樹的最小深度 我們知道完全二叉樹,是可以根據節點數量進行計算出深度的,但是非完成二叉樹呢 他就不滿足了,樹結構體 public class treenode 二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點...
二叉樹的最大深度和最小深度
題目意思很好理解,下面看 獲取二叉樹的最大深度和最小深度 獲取最小深度 func mindepth root treenode int if root.left nil root.right nil 初始化最小值 mind math.maxint32 左子樹最小值 if root.left nil ...
二叉樹的最大深度和最小深度
二叉樹的最大深度 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 分析 這個就是最簡單的二叉樹深度計算,左右支遞迴取...