美文网首页考研数据结构
判断树是否是完全二叉树

判断树是否是完全二叉树

作者: 飞白非白 | 来源:发表于2018-12-04 23:37 被阅读14次

算法思想: 遇到第一个没有左儿子或者右儿子的节点,设置标志位,如 果之后再遇到有左右儿子的节点,那么这不是一颗完全二叉树

//二叉树结点定义  
    typedef struct Node  
    {  
        int data;  
        struct Node* left;  
        struct Node* right;  
    }Node;  
      
    //实现广度遍历需要队列  
    Queue<Node*> queue;  
      
    //第n层最右节点标志  
    bool leftMost = false;  
      
    bool ProcessChild(Node* child)  
    {  
        if (child)  
        {  
            if (!leftMost)  
            {  
                queue.push(child);  
            }  
            else  
            {  
                return false;  
            }  
        }  
        else  
        {  
            leftMost = true;  
        }  
      
        return true;  
    }  
      
    bool IsCompleteBinaryTree(Node* root)  
    {  
        //空树也是完全二叉树  
        if (!root)  
            return true;  
      
        //首先根节点入队列  
        queue.push(root);  
      
        while(!queue.empty())  
        {  
            Node* node = queue.pop();  
      
            //处理左节点  
            if (!ProcessChild(node->left))  
                return false;  
      
            //处理右节点  
            if (!ProcessChild(node->right))  
                return false;  
        }  
      
        //广度优先遍历完毕,此乃完全二叉树  
        return true;  
    }

相关文章

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

    判断是否是完全二叉树 给定一个二叉树,确定它是否是一个完全二叉树。 百度百科中对完全二叉树的定义如下: 若设二叉树...

  • 判断一棵树是否是搜索二叉树、判断一棵树是否是完全二叉树

    题目描述 判断一棵树是否是搜索二叉树、判断一棵树是否是完全二叉树 什么是二叉查找树? 二叉查找树(Binary S...

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • 二叉树常见问题

    1 判断类问题 判断类问题主要分判断二叉树是否是二叉搜索树、二叉完全树,以及两棵二叉树是否同构这三个问题。 1.1...

  • 1 二叉树的最近公共祖先(leetcode 236) 2 判断是否为平衡二叉树 3 判断二叉树是否为满二叉树 4 ...

  • 判断树是否是完全二叉树

    算法思想: 遇到第一个没有左儿子或者右儿子的节点,设置标志位,如 果之后再遇到有左右儿子的节点,那么这不是一颗完...

  • leetcode-Easy-29-Tree-Same tree

    题目判断二叉树是否完全一样 Given two binary trees, write a function to...

  • 判断一个树是否是BST 求一棵平衡二叉树的最小深度 判断一棵二叉树是否高度平衡

  • 平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

  • 39、平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

网友评论

    本文标题:判断树是否是完全二叉树

    本文链接:https://www.haomeiwen.com/subject/dsubcqtx.html