分两次dfs

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

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

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param root TreeNode类 the root
     * @return bool布尔型vector
     */
    vector<bool> judgeIt(TreeNode* root) {
        // write code here
        return {isSearchTree(root,INT_MIN,INT_MAX),isCompletedTree(root)};
    }
    
    bool isCompletedTree(TreeNode* root)
    {
        if(root == nullptr) 
            return true;
        if(root->left && root->right == nullptr)
            return isCompletedTree(root->left);
        if(root->left == nullptr && root->right)
            return false;
        return isCompletedTree(root->left) && isCompletedTree(root->right);
    }
    
    bool isSearchTree(TreeNode *root, int left, int right)
    {
        if(root == nullptr) 
            return true;
        if(root->val < left || root->val > right)
            return false;
        return isSearchTree(root->left,left,root->val) && isSearchTree(root->right, root->val,right);
    }
        
};

全部评论
这样判断完全二叉树是错的 这个样例就错了{6,4,8,3,#,7},但是提交是正确了,说明测试数据弱了
1 回复 分享
发布于 2021-03-21 11:11
判断是否完全二叉树是怎么判断的呀,没看明白
点赞 回复 分享
发布于 2021-03-14 09:07
这方法判断搜索二叉树要是出现左子树中的右子树节点是大于最初根节点的情况,也会认为是搜索二叉树,实际上应该不算才对
点赞 回复 分享
发布于 2021-03-26 22:57
确实写错了
点赞 回复 分享
发布于 2021-04-22 20:40
确实写错了啊
点赞 回复 分享
发布于 2021-05-31 00:06

相关推荐

昨天 11:21
门头沟学院 Java
总包48.5w,意想不到的价格
无情咸鱼王的秋招日记之薛定谔的Offer:R
点赞 评论 收藏
分享
11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
评论
5
收藏
分享
牛客网
牛客企业服务