首页 > 解决方案 > 二叉树中同一级别的叶子

问题描述

我编写了一个代码来检查所有叶节点是否处于同一级别,但我的代码没有通过所有测试用例,任何人都可以帮助我找出错误。

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;

标签: javabinary-tree

解决方案


变量ma是一个参数。当您将最左侧叶节点的高度分配给ma并返回(从递归)时,它不会反映在调用者中。

制作ma实例变量或静态变量ans,并将其作为参数删除。


推荐阅读