Given a binary tree, determine if it is .
Example 1:

Input: root = [3,9,20,null,null,15,7] Output: true
Example 2:

Input: root = [1,2,2,3,3,null,null,4,4] Output: false
Example 3:
Input: root = [] Output: true
Constraints:
- The number of nodes in the tree is in the range
[0, 5000]
. -104 <= Node.val <= 104
A:
Mistakes:/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),* right(right) {}* };*/class Solution {public:bool isBalanced(TreeNode* root) {int depth = 0;return helper(root, depth);}private:bool helper(TreeNode* root, int& depth) {if (!root) {depth = 0;return true;}int dL = 0, dR = 0;if (root->left) {auto resL = helper(root->left, dL);if (!resL) {return false;}}if (root->right) {auto resR = helper(root->right, dR);if (!resR) {return false;}}depth = 1 + max(dL, dR);return abs(dL - dR) <= 1;}};
No comments:
Post a Comment