完全二叉树的检验

简介: 完全二叉树的检验完全二叉树的检验
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
/*完全二叉树的判断de思路:
利用层次遍历将每一层结点入队(包括null的结点),当队头结点指针指向null结点时
break出while循环,进入第二个while进行判断null结点后是否还有非空结点
若有则返回false,反之。
*/
class Solution {
public:
    bool isCompleteTree(TreeNode* root) {
        queue<TreeNode *>que; //创建一个队列
        que.push(root); //根结点入队
        while(!que.empty()){
            TreeNode *node=que.front();//node指针指向当前对头结点 
            que.pop(); //将队首结点弹出
            if(!node){//如果队头指针为null的话 退出while循环
                break;
            }else{ //node指针非空
                que.push(node->left);
                que.push(node->right);//将左右孩子均压入队列中
            }
        }
        while(!que.empty()){
            TreeNode *node=que.front();
            if(node)
                return false;
            que.pop();//弹出队头结点
        }
        return true;
    }
};
相关文章
|
存储 算法
【每日挠头算法题(9)】二叉树的直径|二叉树的层序遍历
【每日挠头算法题(9)】二叉树的直径|二叉树的层序遍历
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
57 0
|
算法 C语言 C++
【树】你真的会二叉树了嘛? --二叉树LeetCode专题Ⅲ
这题算是简单题,我们依然从最简单的情况来考虑。
66 0
|
7月前
|
存储 算法 程序员
【算法训练-二叉树 七】【二叉搜索树】验证二叉搜索树、将二叉搜索树转为排序的双向循环链表
【算法训练-二叉树 七】【二叉搜索树】验证二叉搜索树、将二叉搜索树转为排序的双向循环链表
68 0
|
存储 算法 前端开发
前端算法-叉树的最大深度
前端算法-叉树的最大深度
算法训练Day21|530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
算法训练Day21|530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
|
存储 算法
算法训练Day17|● 104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
算法训练Day17|● 104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
|
存储 算法
二叉树全分析(超详细总结建议收藏)
二叉树全分析(超详细总结建议收藏)
239 0
每日三题-验证二叉搜索树、二叉树的直径、把二叉搜索树转换为累加树
每日三题-验证二叉搜索树、二叉树的直径、把二叉搜索树转换为累加树验证二叉搜索树验证二叉搜索树v
63 2
每日三题-验证二叉搜索树、二叉树的直径、把二叉搜索树转换为累加树
线段树总结分析第二版
线段树总结分析第二版
60 0