java - 计算二叉树中的级别数
问题描述
我正在尝试使用递归“Java”计算特定级别的节点数。我尝试了下面的代码,但问题是当我通过不在树中退出空的级别时,例如当我通过 5 时树中有 4 级它继续计数元素,我该如何解决?任何帮助表示赞赏。
private int countNodeLevel(int level,Node<E> n)
{
Node<E> curr=root;
if(curr == null) {
return 0;
}
if(level == 0) {
return 1;
}
return ( countNodeLevel( level - 1,n.leftChild)+countNodeLevel(level - 1, n.rightChild));
}
解决方案
private int countNodeLevel(int level, Node<E> n) {
if (n == null) {
return 0;
}
if (level <= 0) {
return 0;
}
return 1
+ countNodeLevel(level - 1, n.leftChild)
+ countNodeLevel(level - 1, n.rightChild);
}
0 级返回 0 似乎更合乎逻辑。对于一个节点,有 1 + 左 + 右。
推荐阅读
- reactjs - map函数导致无限循环
- python - 为什么我不能删除原来的 werkzeug 处理程序?
- macos - macOS 10.14 内核调试
- javascript - NodeJs 服务器充斥着 UDP 广播,不发送响应
- css - text-decoration:内有转换元素的下划线
- reactjs - React Router v4:防止导航返回
- javascript - 路由查询参数更改时,角度材质选项卡导航失去活动标记
- r - grid.arrange 与 ggplotly
- javascript - 在 C3 Js 图表中首次加载页面时启用/禁用图例元素。此外,管理图例元素基于复选框值启用/禁用
- javascript - 非法参数 bcrypt js - mongodb & node