[이 진 트 리] 이 진 트 리 가 밸 런 스 이 진 트 리 인지 판단

제목 링크:https://leetcode.com/problems/balanced-binary-tree/#/description
/**
 * 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 isBalanced(TreeNode* root) {
        if(checkDepth(root)==-1)
            return false;
        else return true;
    }
    //        ,         
    int checkDepth(TreeNode* root){
        if(root==NULL) return 0;
        //         
        int l=checkDepth(root->left);
        if(l==-1) return -1;
        //         
        int r=checkDepth(root->right);
        if(r==-1) return -1;
        //        
        int diff=abs(l-r);
        if(diff>1) return -1;
        //        
        return 1+max(l,r);
    }
};

좋은 웹페이지 즐겨찾기