[leetcode] Balanced Binary Tree

来源:互联网 发布:ubuntu gtx1080 驱动 编辑:程序博客网 时间:2024/04/30 10:46

Balanced Binary Tree

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    bool isBalanced(TreeNode *root) {        int dep;        return checkBalance(root,dep);    }    bool checkBalance(TreeNode *node,int &dep){        if(node==NULL){            dep=0;            return true;        }        int leftDep,rightDep;        bool leftBalance=checkBalance(node->left,leftDep);//左子树高度        bool rightBalance=checkBalance(node->right,rightDep);//右子树高度        dep=max(leftDep,rightDep)+1;//树的高度                return leftBalance&&rightBalance&&(abs(leftDep-rightDep)<=1);//左子树是BBT,右子树是BBT,且左右子树高度差不大于1    }};


0 0
原创粉丝点击