如何实现一个函数,该函数返回在该树中给定元素之前找到的叶子数?假设你是从左到右阅读树?
我发现它做了但它不是很直接并且使用Exceptions机制,我认为可能有一种优雅的方式来做它?
答案 0 :(得分:0)
也许你可以直接dfs树,计算叶子,将它保存到每个节点。像
int count;
void dfs(int x){
dfs(x->left);
leafBefore[x] = count;
if (x is leaf) count += 1;
dfs(x->right);
}
count = 0;
dfs(root);