二叉树——958. 二叉树的完全性检验

二叉树——958. 二叉树的完全性检验

题目:

思路:

参考了题解,依靠层序遍历。

代码:

class Solution {
public:
    bool isCompleteTree(TreeNode* root) {
        // 辅助栈帮助层序遍历
        queue<TreeNode*> q;
        // 记录是否已经遍历到null
        bool reachNull = false;
        q.push(root);
        while(!q.empty()){
            TreeNode* curr = q.front();
            q.pop();
            if(curr == nullptr){
                // 发现空结点
                reachNull = true;
                continue;
            }
            else
            {
                // 发现null节点后出现非空节点,发现不完全了
                if(reachNull){
                    return false;
                }
                // 继续遍历左右节点
                q.push(curr->left);
                q.push(curr->right);
            }
        }
        return true;
    }
};

Rank:

Tips:

别忘了层序遍历,层序遍历的话记住借助栈。

posted @ 2021-04-22 20:34  Originhhh  阅读(94)  评论(0)    收藏  举报