我试图找出一个函数 f(x) 来计算 k-ary 树中的叶子数。例如,假设我们创建了一个以根 4 开头的树,有 3 个子节点,每个子节点分别为 -1、-2、-3。我们的叶子只会是 0 值,而不是空值。在过去的一天里,我一直在试图找出一个函数,但似乎我所做的一切都没有朝着正确的方向发展。
前任:
4
/ | \
3 2 1
/ |\ /| /
2 1 0 1 0 0
/| / /
1 0 0 0
/
0
7片叶子。
任何帮助将不胜感激!谢谢!
为了澄清,我需要一个数学方程,如果我递归遍历树,它会得出与代码相同的答案。
更多示例:{4,7}{5,13}{6,24}{7,44}{8,81}{9,149}{10,274}{11,504}{12,927}{13,1705}{14,3136} {15,5768}{16,10609}{17,19513}{18,35890}{19,66012}{20,121415}
public int numleaves(TreeNode node) {
if (node == null)
return 0;
else if (node.getLeft() == null && node.getMiddle() == null && node.getRight() == null)
return 1;
else
return numleaves(node.getLeft()) + numleaves(node.getMiddle()) + numleaves(node.getRight());
}