题解 | #判断是不是平衡二叉树#
判断是不是平衡二叉树
https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222
public class Solution { public boolean IsBalanced_Solution(TreeNode root) { return measure(root) != -1; } private int measure(TreeNode root) { if (root == null) { return 0; } else { int lHeight = measure(root.left); int rHeight = measure(root.right); if (lHeight == -1 || rHeight == -1 || Math.abs(lHeight - rHeight) > 1) { return -1; } else { return Math.max(lHeight, rHeight) + 1; } } } }
一开始就想到直接递归计算两个子树的高度差来判断,但是苦于要返回高度同时还要记录判断结果,结果就想了一段时间,后面灵光一现,想到直接设置一个特殊值-1来辅助判断,这样就可以实现地比较优雅而且可以快速返回