LeetCode110. Balanced Binary Tree

来源:互联网 发布:rimworld mac a14 编辑:程序博客网 时间:2024/06/06 01:17

110.Balanced Binary Tree

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
高度平衡的二叉树定义:二叉树的每个节点的左右子树的高度相差不大于1.

public class TreeNode {    int val;    TreeNode left;    TreeNode right;    TreeNode(int x) { val = x; }}

利用递归的思想,先计算树的高度,然后计算每个节点的左右子树的高度差是否大于1.

public boolean isBalanced(TreeNode root) {    if(root == null) return true;    if((Math.abs(hightOfTree(root.left) - hightOfTree(root.right))) > 1){        return false;    }    return isBalanced(root.left) && isBalanced(root.right);}public int hightOfTree(TreeNode root){    if(root == null) return 0;    return Math.max(hightOfTree(root.left), hightOfTree(root.right)) + 1;}
原创粉丝点击