劍指offer:輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
阿新 • • 發佈:2018-12-10
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
//後續遍歷二叉樹,遍歷過程中求子樹高度,判斷是否平衡 class Solution { public: bool IsBalanced(TreeNode *root, int & dep){ if(root == NULL){ return true; } int left = 0; int right = 0; if(IsBalanced(root->left,left) && IsBalanced(root->right, right)){ int dif = left - right; if(dif<-1 || dif >1) return false; dep = (left > right ? left : right) + 1; return true; } return false; } bool IsBalanced_Solution(TreeNode* pRoot) { int dep = 0; return IsBalanced(pRoot, dep); } };