蓝桥杯备战日志(Python)8-完全二叉树的权值(二叉树的性质)
发布时间:2023-02-11 12:24:55 263
相关标签: # python# 数据
原题
给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 ,如下图所示:
现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点 权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。
注:根的深度是 1。
分析
完全二叉树
在完全二叉树中,对于树的任意一个结点,若其有右结点,则一定有左结点;反之不一定。
图· 完全二叉树(来源:百度百科)
性质
- 树的第i层的结点编号:以2i-1开始,2i-1结束;
- N个结点的完全二叉树的深度(高度)为int(log2N) + 1
注:
以上性质画个图很容易推导出来,不必死记;其它性质可由基本性质综合推导,理解即可。
本题的解题思路用到了以上两个性质,具体实现见下述源码。
源码
测试数据:
①输出:2
②输出:5
上一篇:蓝桥杯备战日志(Python)7-求和(前缀和)
文章来源: https://blog.51cto.com/gpnuCITlabCar/6036357
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报