题解 | 判断是不是完全二叉树

判断是不是完全二叉树

https://www.nowcoder.com/practice/8daa4dff9e36409abba2adbe413d6fae

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param root TreeNode类 
 * @return bool布尔型
 */
bool isCompleteTree(struct TreeNode* root ) {
    // write code here
    if(root==NULL)  return true;

    struct TreeNode* queue[101];
    int head=0,tail=0;
    queue[tail++]=root;

    bool mustBeLeaf=false;

    while(head!=tail)
    {
        struct TreeNode* node=queue[head++];

        if(node->left==NULL&&node->right!=NULL) return false;
        //必需为叶子结点但左右子结点有的不为空时
        if((mustBeLeaf)&&(node->left!=NULL||node->right!=NULL))  return false;
        if(node->left!=NULL){
            queue[tail++]=node->left;
        }
        if(node->right!=NULL)
        {
            queue[tail++]=node->right;
        }else{
            mustBeLeaf=true;
        }
        
    }
    return true;
}

全部评论

相关推荐

04-28 19:31
门头沟学院 Java
真烦好烦真烦:可恶的二手车贩子,居然对我们门头沟学院的人这么没礼貌
点赞 评论 收藏
分享
群星之怒:不是哥们,你就不好奇瘫痪三十年的老植物人是啥样的吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务