zoukankan      html  css  js  c++  java
  • Java [Leetcode 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.

    解题思路:

    递归法解题。

    代码如下:

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public boolean isBalanced(TreeNode root) {
        	if(root == null)
        		return true;
        	else{
        		if(Math.abs(getHeight(root.left) - getHeight(root.right)) > 1)
        			return false;
        		else 
        			return isBalanced(root.left) && isBalanced(root.right);
        	}
        }
    
        public int getHeight(TreeNode root){
        	if(root == null)
        		return 0;
        	else return 1 + Math.max(getHeight(root.left), getHeight(root.right));
        }
    }
    

      

  • 相关阅读:
    费马小定理
    Big Number阶乘位数计算(斯特林公式)
    V
    矩阵快速幂求斐波那契
    奇迹
    缘分
    求导
    拓扑排序
    线段树
    单调栈
  • 原文地址:https://www.cnblogs.com/zihaowang/p/5125144.html
Copyright © 2011-2022 走看看