二叉树的深度是从根节点开始(其深度为1)自顶向下逐层累加的;而二叉树高度是从叶节点开始(其高度为1)自底向上逐层累加的。虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。
public class Solution { public boolean isBalance = true; public boolean IsBalanced_Solution(TreeNode root) { if (root == null) { return true; } treeDeep(root); return isBalance; } public int treeDeep (TreeNode root) { if (root == null || !isBalance) { return 0; } int left = treeDeep(root.left); int right= treeDeep(root.right); int heightMinus = Math.abs(left - right); if (heightMinus <= 1) { isBalance = true; } else { isBalance = false; } return Math.max(treeDeep(root.left), treeDeep(root.right)) + 1; } }