剑指 Offer 55 - II. 平衡二叉树

    技术2022-07-12  64

    输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ ``class Solution { public boolean isBalanced(TreeNode root) { //任意节点左右子树深度差不超过1,则为平衡二叉树 if(root==null){return true;} int leftHeight=computeTreeHeight(root.left); int rightHeight=computeTreeHeight(root.right); if(Math.abs(leftHeight-rightHeight)>1){ return false; }else return isBalanced(root.left) && isBalanced(root.right); } private int computeTreeHeight(TreeNode node){ if(node==null) return 0; else return Math.max(computeTreeHeight(node.left),computeTreeHeight(node.right))+1; } }
    Processed: 0.010, SQL: 9