func max(a int,b int)int{
if a>=b{
return a
}
return b
}
func maxall(a int,b int,c int)int{
return max(max(a,b),c)
}
func maxDepth1(root *TreeNode) int {
if root==nil{
return 0
}
l := maxDepth1(root.Left)
r:= maxDepth1(root.Right)
return int(max(l,r)+1)
}
func diameterOfBinaryTree(root *TreeNode) int {
if root==nil{
return 0
}
return maxall(diameterOfBinaryTree(root.Right),diameterOfBinaryTree(root.Left),maxDepth1(root.Right)+maxDepth1(root.Left) )
}
本文介绍了一种计算二叉树最大深度和直径的方法,通过递归算法实现了对二叉树结构的深度探索,计算出从根节点到任意叶子节点的最大路径长度(深度)以及树中任意两个节点间最长路径的长度(直径)。

被折叠的 条评论
为什么被折叠?



