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

判断是不是完全二叉树

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;
}

全部评论

相关推荐

爱吃烤肠的牛油最喜欢...:50K是ssp了估计,ssp的人家多厉害都不用说,每年比例大概在百分之5左右
点赞 评论 收藏
分享
09-21 21:14
门头沟学院
否极泰来来来来:和他说:这里不好骂你,我们加个微信聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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