zoukankan      html  css  js  c++  java
  • leetcode——面试题55.II平衡二叉树

    class Solution {
        public boolean isBalanced(TreeNode root) {
            //判断一个树是不是平衡二叉树
            //应该是用递归了吧,判断左右子树的高度相差是不是超过1
            //但是如何记录树的高度呢,左右子树的高度分别记录的话,应该如何进行呢?
            if(root == null){
                return true;
            }else{
                int a = checkBalanced(root.left);
                int b = checkBalanced(root.right);
                if(Math.abs(a-b)>1){
                    return false;
                }else{
                    return isBalanced(root.left)&&isBalanced(root.right);
                }
            }
        }
    
        private int checkBalanced(TreeNode node) {
            if(node == null){
                return 0;
            }else{
                return Math.max(checkBalanced(node.left)+1,checkBalanced(node.right)+1);
            }
        }
    }

     也不知道具体算是什么算法,就想着套递归,把逻辑屡清楚就套进去了……

    ——2020.6.18

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    UDP 远程主机强迫关闭了一个现有连接
    CSS float 理解
    C# 启用事务提交多条带参数的SQL语句
    EF学习之DBFirst
    说一说JavaScript 中的原型ProtoType
    Unity
    Unity
    Unity
    Unity
    Godot
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13155878.html
Copyright © 2011-2022 走看看