即:
maxDepth(root) = max(maxDepth(root.left), maxDepth(root.right)) + 1
以 [3,4,20,null,null,15,7] 为例:...由此我们可以得到根节点的最大深度为
maxDepth(root-3)
=max(maxDepth(sub-4),maxDepth(sub-20))+1
=max(1,max(maxDepth(sub...-15),maxDepth(sub-7))+1)+1
=max(1,max(1,1)+1)+1
=max(1,2)+1
=3
根据分析,我们通过递归进行求解:
func maxDepth(root *...}
func max(a int, b int) int {
if a > b {
return a
}
return b
}
03
DFS
其实我们上面用的递归方式...虽然我们用递归的方式根据DFS的思想顺利完成了题目。但是这种方式的缺点却显而易见。因为在递归中,如果层级过深,我们很可能保存过多的临时变量,导致栈溢出。