110. 平衡二叉树 - 8月17日

题目

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;
    }
};
/*
求节点高度,
球节点层次,
递归完成:
    后续遍历,先得到当前节点两棵子树的高度,比较是否满足条件;返回较大值作为当前节点的高度。每个节点作为根的高度之差
*/

 

拓展学习

posted on 2020-08-17 11:53  BoysCryToo  阅读(91)  评论(0编辑  收藏  举报

导航