【发布时间】:2014-03-29 17:07:10
【问题描述】:
我正在尝试创建一个函数,该函数将从根节点开始计算指定级别的树的叶子。
意思是我有一个函数leafcount(BTNode node, int level)
对如下所示的树结构调用此函数leafCount(root,2) 应产生1,即它从根计算第2 层的叶节点B。它忽略了其他叶子 C,因为它不在级别 2 而是级别 1
root
/ \
A C
/
B
我尝试使用递归实现以下操作
int leafCount(BTNode node, int level){
if(node == null){
return 0;
}
if(level == 0 && (node.left == null && node.right == null)){
return 1;
}
else{
return leafCount(node.left,level--) + leafCount(node.right,level--);
}
虽然没用。我做错了什么?
【问题讨论】:
-
你有两次调用 level--。最好有一个级别——在递归调用之前,只需将级别发送到递归调用。
标签: algorithm recursion tree binary-tree