輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度為樹的深度。
例如:
給定二叉樹 [3,9,20,null,null,15,7],3/
9 20
/ 15 7
返回它的最大深度 3 。
節點總數 <= 10000
遞迴出口: 如果root為空,返回0
遞迴關係:max(height(root.left)+1, height(root.right)+1)
層序遍歷一般借助佇列來實現
按照從左到右,從上到下的方式把樹上的元素放到佇列中
按照每一層進行遍歷,把每一層的資料遍歷完後,res++
/**
* definition for a binary tree node.
* type treenode struct
*/func
maxdepth
(root *treenode)
int leftdepth :=
maxdepth
(root.left)+1
rightdepth :=
maxdepth
(root.right)+1
max := leftdepth
if rightdepth > max
return max
}
/**
* definition for a binary tree node.
* type treenode struct
*/func
maxdepth
(root *treenode)
int queue :=
*treenode
forlen
(queue)
>
0if queue[0]
.right !=
nil queue = queue[1:
] length--
} res++
}return res
}
劍指offer 面試題55(1) 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。遞迴去找,返回左右子樹中較大的值 題目 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 遞迴去找,返回...
劍指offer 二叉樹 二叉樹搜尋樹
package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...
劍指offer 二叉樹 二叉樹的映象
操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 51,交換左右子樹 2,遞迴交換左右子樹的左右子節點 package offertest title mirror description author 田...