Leetcode 110. Balanced Binary Tree
判断平衡树的经典教科书办法:左右紫薯差小于等于1。 我们仅仅需要进行判断平衡,左右子树差小于等于1,继续返回左子树平衡且右子树平衡。 否则返回false
/** * 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 { public: bool isBalanced(TreeNode* root) { if(!root) return true; int left = getLevel(root->left); int right = getLevel(root->right); if(abs(left - right) <= 1) return isBalanced(root->left) && isBalanced(root->right); return false; } int getLevel(TreeNode* root) { if(!root) return 0; return min(getLevel(root->left), getLevel(root->right)) + 1; } };