一、题目
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
二、解法
1 public class Solution { 2 private boolean isBalanced = true; 3 public boolean IsBalanced_Solution(TreeNode root) { 4 //后续遍历时,遍历到一个节点,其左右子树已经遍历 依次自底向上判断,每个节点只需要遍历一次 5 getDepth(root); 6 return isBalanced; 7 } 8 public int getDepth(TreeNode root){ 9 if(root == null) 10 return 0; 11 int left = getDepth(root.left); 12 int right = getDepth(root.right); 13 if(Math.abs(left - right) > 1) 14 isBalanced = false; 15 return right>left ? right+1 : left+1; 16 } 17 }