题目大意:判断一个二叉树是否是平衡二叉树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; }