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

判断是不是完全二叉树

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

/**
 * struct TreeNode {
 *    int val;
 *    struct TreeNode *left;
 *    struct TreeNode *right;
 *    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
public:
    bool isCompleteTree(TreeNode* root) {
        queue<TreeNode*>q;
        bool flag = false;
        q.push(root);
        TreeNode*cur;
        while(!q.empty())
        {
            for(int  i = 0;i<q.size();i++)
            {
                cur = q.front();
                q.pop();
                if(cur == NULL)
                {
                    flag =  true;   //大体上跟层序遍历的类似,这里就需要判断如果后面有节点,并且前面是空的节点,这里就需要用到if else先把flag设定成true,然后再是当下一次cur不等于null的时候返回false
                }
                else{
                    if(flag)
                        return false;
                    q.push(cur->left);
                    q.push(cur->right);
                }

            }
        }
        return true;

    }
};
全部评论

相关推荐

字节一直是我的白月光,考虑到转正还是拒了日常实习。
从今天开始狠狠卷JVAV_癫:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-24 20:25
腾讯今年实习招了这么多人,后面秋招还会招人吗??想着秋招再战来着
牛客965593684号:腾讯好像2020年之后就是实习生招得多,应届生基本上不招,纯实习转正
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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