题目
110. 平衡二叉树
我的思路
递归解决:
后续遍历,先得到当前节点两棵子树的高度,比较是否满足条件;返回较大值作为当前节点的高度。每个节点作为根的高度之差
我的实现
/** * 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 result; int postSearch(TreeNode *root){ if(root==NULL)return 0; else{ int h1 = postSearch(root->left); int h2 = postSearch(root->right); if(h1-h2>1||h2-h1>1){ result = false; } return max(h1,h2)+1; } } bool isBalanced(TreeNode* root) { result = true; postSearch(root); return result; } }; /* 求节点高度, 球节点层次, 递归完成: 后续遍历,先得到当前节点两棵子树的高度,比较是否满足条件;返回较大值作为当前节点的高度。每个节点作为根的高度之差 */