java - 二叉树中同一级别的叶子
问题描述
我编写了一个代码来检查所有叶节点是否处于同一级别,但我的代码没有通过所有测试用例,任何人都可以帮助我找出错误。
static boolean ans;
static void solve(Node root,int h,int ma){
if(root==null)
return;
if(ans==false)
return;
if(root.left==null&&root.right==null)
{
if(ma==-1)
ma = h;
else{
if(h != ma)
ans = false;
}
return;
}
solve(root.left,h+1,ma);
solve(root.right,h+1,ma);
}
boolean check(Node root)
{
// Your code here
ans = true;
int ma = -1,h=0;
solve(root,h,ma);
return ans;
解决方案
变量ma
是一个参数。当您将最左侧叶节点的高度分配给ma
并返回(从递归)时,它不会反映在调用者中。
制作ma
实例变量或静态变量ans
,并将其作为参数删除。
推荐阅读
- c# - Windows IOT C#/Xaml BitmapImage 编译器错误
- swift - 斯威夫特我无法添加变量字符串的子字符串结尾,值保持不变,有什么问题?
- php - 使用 $_SERVER["DOCUMENT_ROOT"] 返回目录
- javascript - Phaser游戏/学校项目,需要指导
- java - 为 Spring Security 配置 Gradle
- polymer - 在聚合物 3 中导入外部样式表
- indexeddb - 如何将多级对象映射到 indexedDB 以获得最佳效率
- ios - 无法为我的应用添加新的 iOS 版本
- php - 查询 Mysql 的唯一值
- python - 如何将 dask 数据框的所有部分合并在一起