在给出的代码中,计算二叉树最小深度的逻辑基本正确。但是有一个地方需要修改。
func minDepth(root *TreeNode) int {
return Recursion(root) + 1
}
这里的返回值应该是 Recursion(root)
而不是 Recursion(root) + 1
。因为在 Recursion
函数内部已经对每个节点加了 1。
修正后的代码如下:
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func Min(a, b int) int {
if a < b {
return a
}
return b
}
func Recursion(node *TreeNode) int {
if node == nil {
return 0
}
leftDepth := Recursion(node.Left)
rightDepth := Recursion(node.Right)
return Min(leftDepth, rightDepth) + 1
}
func minDepth(root *TreeNode) int {
return Recursion(root)
}
这样就可以正确计算二叉树的最小深度了。
内容由零声教学AI助手提供,问题来源于学员提问