本文共 732 字,大约阅读时间需要 2 分钟。
class Solution { // 递归辅助函数,其返回值有两种,如果树平衡返回的是树的深度(左右子树取最大值);如果不平衡,返回 -1; private int depthTree(TreeNode root){ if(root == null) return 0; int ld = depthTree(root.left); int rd = depthTree(root.right); // 左右子树高度差大于1不平衡,且遇到子树不平衡,整个树也不平衡。 if(ld == -1 || rd == -1 || Math.abs(ld - rd) > 1){ return -1; } // 返回数的深度 左右子树取最大值,再加上其本身 return Math.max(ld,rd) + 1; } public boolean isBalanced(TreeNode root) { return depthTree(root) == -1 ? false : true; }}
// 递归函数返回树的深度private int depthTree(TreeNode root){ return root == null ? 0 : Math.max(depthTree(root.left) , depthTree(root.right)) + 1;}
转载地址:http://vpozi.baihongyu.com/