题解 | #二叉搜索树和完全二叉树判断#

判断一棵二叉树是否为搜索二叉树和完全二叉树

http://www.nowcoder.com/practice/f31fc6d3caf24e7f8b4deb5cd9b5fa97

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
//完全二叉树判断,层次遍历过程中,如果出现了空,则后面的所有值都必须为空.
class Solution {
public:
    /**
     * 
     * @param root TreeNode类 the root
     * @return bool布尔型vector
     */
    int temp=-99999;
    bool ans1=true;
    void inorder(TreeNode* root)
    {
        if(root==NULL)
            return ;
        inorder(root->left);
        if(temp<root->val)
        {
            temp=root->val;
        }else{
            ans1=false;
        }
        inorder(root->right);
    }
    bool levelorder(TreeNode* root)
    {
        queue<TreeNode*> q;
        q.push(root);
        while (q.front()) {
            TreeNode* tmp = q.front();
            q.pop();
            q.push(tmp->left);
            q.push(tmp->right);
        }
        while(q.size()&&!q.front())
        {
            q.pop();
        }
        return q.empty();
    }
    vector<bool> judgeIt(TreeNode* root) {
        // write code here
        vector<bool> v;
        inorder(root);
        v.push_back(ans1);
        v.push_back(levelorder(root));
        return v;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 18:22
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务