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

时间:2021-04-22
本文章向大家介绍二叉树——958. 二叉树的完全性检验,主要包括二叉树——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:

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

原文地址:https://www.cnblogs.com/lzyrookie/p/14691401.html