110. 平衡二叉树
题目链接:
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
递归法:
我的代码:
*** 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 flag = balanced(root);if(flag == -1) {return false;}else{return true;}}int balanced(TreeNode* cur){if(cur == nullptr) return 0;int left = balanced(cur->left);if(left == -1) return -1;//这里自己写的时候漏了int right = balanced(cur->right);if(right == -1) return -1;if(abs(left - right) > 1){return -1;}else{return 1 + max(left, right);}}
};