当前位置: 首页 > news >正文

987: 输出用先序遍历创建的二叉树是否为完全二叉树的判定结果

解法:

一棵二叉树是完全二叉树的条件是:

  1. 对于任意一个结点,如果它有右子树而没有左子树,则这棵树不是完全二叉树。

  2. 如果一个结点有左子树但是没有右子树,则这个结点之后的所有结点都必须是叶子结点。

如果满足以上条件,则这棵二叉树是完全二叉树;否则,不是完全二叉树。

图解:

980: 输出利用先序遍历创建的二叉树的层次遍历序列_swust oj 980: 输出利用先序遍历创建的二叉树的层次遍历序列-CSDN博客

和这道题是一样的,在这基础上补二个判断即可

#include<iostream>
#include<queue>
using namespace std;
struct treeNode {char val;treeNode* left;treeNode* right;treeNode(char x) :val(x), left(NULL), right(NULL) {};
};
treeNode* buildTree() {char ch;cin >> ch;if (ch == '#') return NULL;treeNode* root = new treeNode(ch);root->left = buildTree();root->right = buildTree();return root;
}
bool bfs(treeNode* root) {queue<treeNode*> q;if (root == NULL) return false;q.push(root);int flag = 0;while (!q.empty()) {int num = q.size();for (int i = 0; i < num; i++) {treeNode* cur = q.front();q.pop();if (flag) {if (cur->left || cur->right)return false;}if (cur->right && cur->left == NULL) return false;if (cur->left && cur->right == NULL) flag = 1;if (cur->left) q.push(cur->left);if (cur->right) q.push(cur->right);}}return true;
}
int main() {treeNode* root = buildTree();if (bfs(root)) {cout << "Y";}else cout << "N";return 0;
}

http://www.lryc.cn/news/344699.html

相关文章:

  • 13:HAL---SPI
  • 微服务---gateway网关
  • HTML4(二)
  • SpringBoot 扩展篇:ConfigFileApplicationListener源码解析
  • 蓝桥杯省三爆改省二,省一到底做错了什么?
  • Unity EventSystem入门
  • 第4章 Vim编辑器与Shell命令脚本
  • javaWeb快速部署到tomcat阿里云服务器
  • [MQTT]Mosquitto的內網連接(intranet)和使用者/密碼權限設置
  • 某盾BLACKBOX逆向关键点
  • 【2024全国青少年信息素养大赛初赛时间以及模拟题】
  • 2024年软件测试最全jmeter做接口压力测试_jmeter接口性能测试_jmeter压测接口(3),【大牛疯狂教学
  • LLM——用于微调预训练大型语言模型(LLM)的GPU内存优化与微调
  • Telnet协议:远程控制的基石
  • 网络工程师必备:静态路由实验指南
  • springboot利用切面保存操作日志(支持Spring表达式语言(简称SpEL))
  • 遂宁专业知识付费系统报价,免费网课平台怎么开通?需要哪些条件?
  • 【linuxC语言】fcntl和ioctl函数
  • java——继承(一)
  • 【Linux】进程间通信方式之管道
  • 【Linux】yum与vim
  • 苍穹外卖Day06笔记
  • Maximo 使用 REST API 创建 Cron Task
  • 【镜像仿真篇】磁盘镜像仿真常见错误
  • 代码随想录算法训练营DAY45|C++动态规划Part7|70.爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数
  • Linux(openEuler、CentOS8)企业内网DHCP服务器搭建(固定Mac获取指定IP)
  • c#读取hex文件方法,相对来说比较清楚
  • 【ytb数据采集器】按关键词批量爬取视频数据,界面软件更适合文科生!
  • 三条命令快速配置Hugging Face
  • Python网络编程 03 实验:FTP详解