二叉树:
1.满二叉树:在一棵二叉树中,如果所有分支节点都存在左子树和右子树,并且所有叶子节点都在同一层上。
2.完全二叉树:如果一棵具有N个结点的二叉树的结构与满二叉树的前N个结点的结构相同,称为完全二叉树。

//判断一棵二叉树是否是完全二叉树--利用层序遍历来处理->关键:找第一个度不为2的结点->后序结点:如果有孩子则不是完全二叉树,否则是bool IsCompleteBinaryTree(){if (NULL == _pRoot)  //return false;bool isOnlyLeft = false;  //标记仅有左节点的结点queue<Node*> q;q.push(_pRoot);while (!q.empty()) {Node* pCur = q.front();q.pop();if (isOnlyLeft){if (pCur->_pLeft || pCur->_pRight)return false;}else{if (NULL == pCur->_pLeft && NULL != pCur->_pRight)  //存在右孩子没有左孩子,一定不为完全二叉树return false;else if (NULL != pCur->_pLeft && NULL == pCur->_pRight)  //存在左孩子没有右孩子可能不是,记录标记结点看后续结点{q.push(pCur->_pLeft);isOnlyLeft = true;  //只有左孩子是非满结点}else if (NULL != pCur->_pLeft && NULL != pCur->_pRight)  // 左右孩子都存在,入队列继续循环判断 {q.push(pCur->_pLeft);q.push(pCur->_pRight);}elseisOnlyLeft = true; //左右孩子都存在,为非满结点,看后续结点}}return true;}

判断一棵树是否是完全二叉树

数据结构面试题/判断一棵树是否是完全二叉树相关推荐

  1. 数据结构与算法之判断一棵树是否为搜索二叉树、判断一棵树是否是完全二叉树

    数据结构与算法之判断一棵树是否为搜索二叉树.判断一棵树是否是完全二叉树 目录 判断一棵树是否为搜索二叉树 判断一棵树是否是完全二叉树 1. 判断一棵树是否为搜索二叉树 概念:搜索树就是中序遍历的结果是 ...

  2. 判断一棵树是否是搜索二叉树 判断一棵树是否是完全二叉树

    package class_04;import java.util.LinkedList; import java.util.Queue; /*** * 判断一棵树是否是搜索二叉树* 判断一棵树是否是 ...

  3. 判断一棵树是否是完全二叉树

    1.[基础题]–判断一棵树是否是完全二叉树.提示:层序遍历变型题. (1)基础知识 [二叉树]:二叉树是一棵特殊的树,二叉树每个节点最多有两个孩子结点,分别称为左孩子和右孩子. [满二叉树]:高度为N ...

  4. 判断一棵树是否为完全二叉树的算法c语言_[二叉树的面试算法](六)之二叉树结构判断-相关题型总结(4题)...

    在线oj练习地址 判断两棵二叉树是否相同_leetcode100 判断一棵树是否是平衡二叉树_leetcode110 翻转二叉树_leetcode226 判断一棵树是否为对称二叉树_leetcode1 ...

  5. 判断一棵树是否为完全二叉树的算法c语言_别再翻了,面试二叉树看这 11 个就够了!||CSDN博客精选...

    作者:一只不甘平凡的小鹿 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很 ...

  6. 判断一棵树是否为完全二叉树的算法c语言,判断是否为完全二叉树

    什么是二叉树(Binary Tree) 每个结点至多拥有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒. 二叉树包含三种特殊的二叉树,完全二叉树.完满二叉 ...

  7. 判断一颗树是否为完全二叉树

    题目链接:https://oj.ismdeep.com/contest/problem?id=1396&pid=7 H: CBT? 时间限制: 1 s      内存限制: 128 MB    ...

  8. 数据结构面试题(史上最全面试题,精心整理100家互联网企业,面试必过)

    最全面试题,精心整理100家互联网企业面经,祝你面试成功.面试必过(2023优化版)已发布在个人微信公众号[面向Offer学编程],优化版首先修正了读者反馈的部分答案存在的错误,同时根据最新面试总结, ...

  9. 数据结构面试题编程题_您下次编程面试时应该了解的顶级数据结构

    数据结构面试题编程题 by Fahim ul Haq 通过Fahim ul Haq Niklaus Wirth, a Swiss computer scientist, wrote a book in ...

最新文章

  1. boost::system模块实现初始化顺序的测试程序
  2. 控件的WM_NOTIFY消息映射
  3. 2020 年 Flink 最佳学习路线,学习的路上,你,并不孤单
  4. java arraylist 赋值_ArrayList源码解析,老哥,来一起复习一哈?
  5. php yat grpc,PHP GRPC 模块安装配置-Go语言中文社区
  6. 斯坦福大学Andrew Ng教授主讲的《机器学习》公开课观后感
  7. c++ bitset类用法
  8. 关于计算机取代学校的英语作文,关于网络教室将取代传统的教室英语作文
  9. 公共IPV6 dns大全
  10. linux系统文件夹(转)
  11. CF 1056D Decorate Apple Tree
  12. HTTP 204和304的区别
  13. Windows server 2012 R2系统怎么安装IIS管理器?
  14. 新一代智慧医疗整体解决方案
  15. 【蓝桥杯】历届试题 数字游戏(C++)
  16. 程序员必须要掌握的 Git 操作技巧
  17. JS更好的字符串排序(字母顺序+数字大小排序)
  18. CSS3的字体和文本相关属性
  19. html怎样和css链接起来,html如何跟css链接?
  20. Yearn Finance闪电贷攻击分析学习

热门文章

  1. [Cocos2D-X] Cocos2D-X TestCPP 详解(二)Action 总结
  2. 深度卷积生成对抗网络DCGAN之实现动漫头像的生成(基于keras Tensorflow2.0实现)
  3. 《2021多多阅读报告》发布,95后、00后图书消费潜力攀升
  4. java xmn_Java JVM 参数 -Xms -Xmx -Xmn -Xss调优总结
  5. 2021/3/8--前端第2天--开发工具、快捷键、标签
  6. Pittkai——Android折叠屏生命周期
  7. git找回被删除的文件
  8. C#实现三维数字地形漫游
  9. jQuery鼠标点击事件
  10. AI联盟智能控制盒连接不上天猫精灵