leetcode_110

题目来源:https://leetcode.com/problems/balanced-binary-tree/

思路:递归。

代码:

/**

  • Definition for a binary tree node.
  • public class TreeNode {
  • int val;
  • TreeNode left;
  • TreeNode right;
  • TreeNode(int x) { val = x; }
  • }
    */
    class Solution {

    boolean flag = true;

    public int dfs(TreeNode root){

    if (root == null){
        return 0;
    }
    if (flag == false){
        return -1;
    }
    int left = dfs(root.left);
    int right = dfs(root.right);
    if(Math.abs(left-right)>1){
        flag = false;
    }
    return Math.max(left,right)+1;
    

    }

    public boolean isBalanced(TreeNode root) {

    dfs(root);
    return flag;
    

    }
    }