Java 二叉树深度 判断平衡二叉树

Posted 喝点大麦茶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 二叉树深度 判断平衡二叉树相关的知识,希望对你有一定的参考价值。

package cookie;

public class BTreeDepthIsBalanced {
    int depth(BNode head) {
        if (head == null) {
            return 0;
        }
        int left = depth(head.left);
        int right = depth(head.right);
        return left > right ? left + 1 : right + 1;
    }

    boolean isBalanced(BNode head) {
        if (head == null) {
            return true;
        }
        int left = depth(head.left);
        int right = depth(head.right);
        int diff = left - right;
        if (diff > 1 || diff < -1) {
            return false;
        }
        return isBalanced(head.left) && isBalanced(head.right);
    }
}

class BNode {
    int value;
    BNode left;
    BNode right;
}

以上每个节点被遍历多次。

以上是关于Java 二叉树深度 判断平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer平衡二叉树(树)

判断二叉树是否为平衡二叉树

newcode-平衡二叉树

剑指offer系列43---判断平衡二叉树

55-02 平衡二叉树

《剑指offer》:[39-1]判断是否为平衡二叉树