我正在编写用于计算二叉树最小深度的代码 如果输入为6,4,9,3,5,7,12,2,8,我的解决方案适用于树BST 因为最小深度是3,这是正确的 但当树为3,2时,最小深度为1而不是2 我的代码段是:
int minimumHeightRec(TreeNode root)
{
if(root == null) return 0;
int left = minimumHeightRec(root.left);
int right = minimumHeightRec(root.right);
if(left > right) return right + 1;
else return left + 1;
}
答案 0 :(得分:1)
您的实施是正确的。预期的minHeight应为1而不是2。 考虑一下[3,2]的例子,BST可能具有以下形式:
3
/
2
调查left
的{{1}}高度为2:(3) - > (2)
查看root
right
的高度为1:(3)
您正在寻找BST的minHeight,因此选择正确的高度root
分支是正确的选择。
请注意,您可能有一个不同的树形式,其中1
是根,但逻辑和结果将是相同的。
答案 1 :(得分:0)