標籤:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private: int indicator = 1;public: int maxDepth(TreeNode* root) { if(root == NULL) return 0; int leftDepth = maxDepth(root->left); int rightDepth = maxDepth(root->right); if(leftDepth > rightDepth ) return leftDepth + 1; else return rightDepth + 1; } void check(TreeNode *root) { if(root == NULL) return; if(indicator == 0) return; int heightDiffer = maxDepth(root->left) - maxDepth(root->right); if(heightDiffer >1 || heightDiffer < -1) { indicator = 0; return; } check(root->left); check(root->right); } bool isBalanced(TreeNode* root) { check(root); if(indicator == 0) return false; else return true; }};
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Balanced Binary Tree