題目大意:判斷一個二叉樹是否是平衡二叉樹node
思路:定義個boolean來記錄每一個子節點是否平衡code
Java實現:ip
public boolean isBalanced(TreeNode root) { boolean[] balanced = {true}; height(root, balanced); return balanced[0]; } private int height(TreeNode node, boolean[] balanced) { if (node == null) return 0; int leftHeight = height(node.left, balanced); int rightHeight = height(node.right, balanced); balanced[0] = balanced[0] && !(Math.abs(leftHeight - rightHeight) > 1); return balanced[0] ? Math.max(leftHeight, rightHeight) + 1 : -1; }