此算法应递归计算二叉树上的叶数
ALGORITHM CountLeaves(T )
//Input: A binary tree T
//Output: The number of leaves in T
if T = ∅ return 0
else return CountLeaves(Left Leef)+ CountLeaves(Right Leef)
我不知道如何编辑它以便准确计算叶子?另外,如果你能提供证明这个失败的原因,对我来说会非常有帮助,看起来它应该可以正常工作
答案 0 :(得分:3)
对您的方法的修改:问题是您没有检查节点是否为leef。
ALGORITHM CountLeaves(T )
//Input: A binary tree T
//Output: The number of leaves in T
if T = ∅ return 0
else if(left == null and right == null) return 1 // checks for leef node.
else return CountLeaves(Left Leef)+ CountLeaves(Right Leef)
答案 1 :(得分:1)
你总是会返回零 - 你需要一个像
这样的案例if(left == null and right == null) return 1 // this is a leaf
如果您希望能够获得非零计数