题解 | #判断是不是平衡二叉树#
判断是不是平衡二叉树
https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222
/* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function IsBalanced_Solution(pRoot) { // write code here //判断空树 if(!pRoot){ return true; } let pleft=getMaxDepth(pRoot.left); let pright=getMaxDepth(pRoot.right); if(Math.abs(pleft-pright)>1) return false; let leftTree=IsBalanced_Solution(pRoot.left); let rightTree=IsBalanced_Solution(pRoot.right); return leftTree&&rightTree; // return ( Math.abs(getMaxDepth(pRoot.left)-getMaxDepth(pRoot.right)<=1) // && IsBalanced_Solution(pRoot.left) // && IsBalanced_Solution(pRoot.right)) } function getMaxDepth(root){ if(!root){ return 0; } let left=getMaxDepth(root.left)+1; let right=getMaxDepth(root.right)+1; return Math.max(left,right); } // function getMaxDepth(root){ // if(!root) return 0; // return Math.max(getMaxDepth(root.left)+1,getMaxDepth(root.right)+1) // } module.exports = { IsBalanced_Solution : IsBalanced_Solution };