zoukankan      html  css  js  c++  java
  • 求二叉树的是否为平衡二叉树

    题目描述

    输入一棵二叉树,判断该二叉树是否是平衡二叉树。
     
    思路:看到这道题思路是有的,构造一个函数,输入一个节点,通过左右孩子节点返回的深度,判断左右孩子的深度是否满足相差不超过一,并且左右孩子都是平衡二叉树,则把左右孩子较深的那个加一返回。
    可是并不太明白如和返回两个返回值。  后来看了解析才明白,其中一个是返回值的形式传递的,就是树的深度,然后设置一个全局变量,在这个递归函数中间对他进行设置,只要有一层不满足就设置为false,返回这个全局变量就可以了
     
    public class Solution {
        boolean istrue=true;
        public boolean IsBalanced_Solution(TreeNode root) {
            getdepth(root);
            return istrue;
        }
        public int getdepth(TreeNode root){
            if(root==null){
                return 0;
            }
            int leftdepth=getdepth(root.left);
            int rightdepth=getdepth(root.right);
            if(Math.abs(leftdepth-rightdepth)>1){
                istrue=false;
            }
            return (leftdepth>rightdepth?leftdepth:rightdepth)+1;
        }
    }
  • 相关阅读:
    逼哥
    作业
    malloc的底层实现
    docker基本使用
    对mudo中noncopyable类的理解
    整理
    替换war包中的文件
    SpringMVC(1):SpringMVC入门
    MySQL(5):安装MySQL
    MySQL(4):卸载MySQL
  • 原文地址:https://www.cnblogs.com/tobemaster/p/5924022.html
Copyright © 2011-2022 走看看