int TreeDepth(TreeNode* pRoot) { if (pRoot==NULL) return 0; int left= TreeDepth(pRoot->left); int right= TreeDepth(pRoot->right); return (left>right) ? (left+1) : (right+1); }
class Solution { public: bool IsBalanced_Solution(TreeNode* pRoot) {//相差1 或者0 if(pRoot==NULL) return true; //遍历当前节点深度 int left= TreeDepth(pRoot->left);//左子树深度 int right = TreeDepth(pRoot->right);//左子树深度 if(left-right>1||left-right<-1) { return false; } return IsBalanced_Solution( pRoot->left)&&IsBalanced_Solution( pRoot->right); } int TreeDepth(TreeNode* pRoot) { if (pRoot==NULL) return 0; int left= TreeDepth(pRoot->left); int right= TreeDepth(pRoot->right); return (left>right) ? (left+1) : (right+1); } };
原文:https://www.cnblogs.com/cgy1012/p/11424230.html