110.平衡二叉树

简介: 110.平衡二叉树

image.png


递归的方式


/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isBalanced(TreeNode root) {
        if(root==null){
            return true;
        }
        return maxTree(root)!=-1;
    }
    public int maxTree(TreeNode node){
        if(node==null){
            return 0;
        }
        int left=maxTree(node.left);
        int right=maxTree(node.right);
        if(left==-1||right==-1||Math.abs(left-right)>1){
            return -1;
        }
        return Math.max(left,right)+1;
    }
}
目录
相关文章
|
11月前
|
存储 C++
二叉树搜索树的应用
二叉树搜索树的应用
53 1
|
6月前
|
C++
平衡二叉树(C++)
平衡二叉树(C++)
33 1
|
6月前
|
存储 安全 C++
C++【二叉搜索树】
C++【二叉搜索树】
60 0
二叉搜索树之AVL树
二叉搜索树之AVL树
|
存储 算法 关系型数据库
有了二叉树,平衡二叉树为什么还需要红黑树
有了二叉树,平衡二叉树为什么还需要红黑树
99 0
有了二叉树,平衡二叉树为什么还需要红黑树
|
算法
平衡二叉树(AVL树)
平衡二叉树(AVL树)
79 0
|
存储
【二叉搜索树】
【二叉搜索树】
46 0
|
算法
二叉搜索树、平衡二叉树
一、二叉搜索树 这里我们不用太多书面化的语言来定义,笔者认为在讨论数据结构、算法相关的内容时用太多书面化、学术化的语言是一种让人很烦的事情。咬文嚼字,不便于读者理解。 简单来说二叉树搜索树,其实就是用来做二分查找的一种二叉树。 特点是:根节点的左子树值均小于根节点的值,根节点的右子树值均大于根节点的值。 比如123 4 567建树的结果就是
55 0