剑指offer39 平衡二叉树

剑指上用了指针传递,这里用的引用传递

class Solution {
public:
    bool IsBalanced_Solution(TreeNode* pRoot) { 
        int depth = 0;
        return IsBalanced(pRoot,depth);
    }
    bool IsBalanced(TreeNode* pRoot,int& depth){
        if(pRoot == NULL){
            depth = 0;
            return true;
        }
        int left = 0;
        int right = 0;
        if(IsBalanced(pRoot->left,left) && IsBalanced(pRoot->right,right)){
            int diff = left - right;
            if(diff <= 1 && diff >= -1){
                depth = 1 + (left > right ? left : right);
                return true;
            }
        }
        return false;
    }
};

 

posted @ 2017-05-14 22:49  有梦就要去实现他  阅读(154)  评论(0编辑  收藏  举报