
1110 Complete Binary Tree (25 point(s))
发布日期:2021-05-18 12:17:44
浏览次数:10
分类:精选文章
本文共 547 字,大约阅读时间需要 1 分钟。
根据完全二叉树的性质,层序依次给定编号1~n;如果最大编号与n相等,则是完全二叉树。完全二叉树的判断涉及树的遍历和节点的填充情况。以下是详细分析:
完全二叉树的定义:完全二叉树除了最后一层可能不满之外,每一层从左到右的节点数目都达到最大。为了判断给定的二叉树是否为完全二叉树,可以通过遍历树,并记录树的最大深度和最后一个访问的节点。
输入处理:将输入的节点及其子节点信息存储在数组中。使用两个数组l
和r
分别存储左右子节点的位置。检查数组check
用于记录每个节点的子节点数。
根节点的确定:找出所有子节点数为0的节点作为根节点。通常整个树只有一个根节点。
深度优先搜索:通过递归深度优先搜索遍历树,记录每个节点,并更新最大索引max_idx
和最后访问的节点last
。
判断完全二叉树:如果输入的节点数n
等于最大索引max_idx
,说明树是完全二叉树,返回“YES”并输出根节点的编号;否则返回“NO”。
以下测试示例:
测试 CASE 3:n=2,树的结构可能有根节点1,没有右子节点,左子节点可能有2,此时max_idx=2,n=2,返回“YES 2”。
测试 CASE 2:n=1,树只有一个节点,是完全二叉树,返回“YES 1”。
通过这种方法,可以正确判断给定的二叉树是否为完全二叉树。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月10日 04时24分21秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
优先级队列2
2019-03-13
TiKV 源码解析系列文章(十三)MVCC 数据读取
2019-03-13
1900分图论 : 1183E1 LCA + Kruskal
2019-03-13
(建议收藏)计算机网络:传输层概述、UDP协议与可靠传输协议习题解析与拓展
2019-03-13
Android 开发常用的工具类(更新ing)
2019-03-13
EasyUI的简单介绍
2019-03-13
初次安装webpack之后,提示安装webpack-cli
2019-03-13
Java后端服务明显变慢诊断思路
2019-03-13
java中带参数的try(){}语法——关闭资源
2019-03-13
kafka+storm+hbase整合试验(Wordcount)
2019-03-14
VMware克隆虚拟机后重启network失败
2019-03-14
Hbase压力测试
2019-03-14
StreamReader & StreamWriter
2019-03-14
C#中的类、方法和属性
2019-03-14
Python爬取清朝末年医书:《醉花窗医案》,看看病症情况
2019-03-14
Python爬虫训练:爬取酷燃网视频数据
2019-03-14
Python数据分析入门(十九):绘制散点图
2019-03-14
C++版浙大PAT乙级1069(20分)测试点3答案错误解决方法
2019-03-14