LeetCode 第110题:平衡二叉树

2020-08-07  本文已影响0人  放开那个BUG

1、前言

题目描述

2、思路

跟二叉树的最大深度差不多,主要是找到一个节点的左右子树,如果有 | left - right | > 1,则不是。

3、代码

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

    private boolean isBalance = true;

    public boolean isBalanced(TreeNode root) {
        dfs(root);
        return isBalance;
    }

    private int dfs(TreeNode root){
        if(root == null){
            return 0;
        }
        int left = dfs(root.left) + 1;
        int right = dfs(root.right) + 1;
        if(Math.abs(left - right) > 1){
            isBalance = false;
        }
        return Math.max(left, right);
    }
}
上一篇下一篇

猜你喜欢

热点阅读