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

6.8完全二叉树的节点个数(LC222-E)

算法:

如果不考虑完全二叉树的特性,直接把完全二叉树当作普通二叉树求节点数,其实也很简单。

递归法:

用什么顺序遍历都可以。

比如后序遍历(LRV):不断遍历左右子树的节点数,最后加上根节点的节点数1

迭代法:

用层序遍历,改一下模版代码就行。

正确代码:

递归法:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def countNodes(self, root: Optional[TreeNode]) -> int:if root == None:return 0#左leftnum = self.countNodes(root.left)#右rightnum = self.countNodes(root.right)#中num = 1 + leftnum + rightnumreturn num

时间空间复杂度:

时间复杂度分析:

在最坏情况下,需要遍历二叉树的所有节点才能计算节点的数量。因此,时间复杂度为O(n),其中n是二叉树中的节点数。

空间复杂度分析:

归调用的空间复杂度取决于递归的深度,即树的高度。在最坏情况下,二叉树是一个链表结构,高度为n。因此,递归调用的空间复杂度为O(n) - 此外,除了递归调用的空间,没有使用额外的数据结构。因此,除了递归调用的空间外,空间复杂度为O(1)。

综上所述,时间复杂度为O(n),空间复杂度为O(n)(由于递归调用的空间)或O(1)(除了递归调用的空间)。

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

相关文章:

  • 基于协作mimo系统的RM编译码误码率matlab仿真,对比硬判决译码和软判决译码
  • Django模型层
  • 计算机视觉的应用18-一键抠图人像与更换背景的项目应用,可扩展批量抠图与背景替换
  • Redis(哈希Hash和发布订阅模式)
  • php正则表达式汇总
  • Python与ArcGIS系列(八)通过python执行地理处理工具
  • cocos----刚体
  • 【SAP-HCM】--HR人员信息导入函数
  • 【开源】基于JAVA的大学兼职教师管理系统
  • Pyhon函数
  • 使用vuex完成小黑记事本案例
  • 进阶理解:leetcode115.不同的子序列(细节深度)
  • 数据结构-哈希表(C语言)
  • HCIA-综合实验(三)
  • Java程序员的成长路径
  • 几种常用的排序
  • 性能测试【第三篇】Jmeter的使用
  • 业务:业务系统检查项参考
  • 解决公网下,k8s calico master节点无法访问node节点创建的pod
  • 六边形架构
  • 基于单片机的智能家居安保系统(论文+源码)
  • 盘点3种Python网络爬虫过程中的中文乱码的处理方法
  • 小程序富文本图片大小问题
  • Diagrams——制作短小精悍的流程图
  • Elasticsearch基础条件查询
  • 【SAP-ABAP】SAP与外围系统对接方式
  • 云计算的发展趋势
  • 国民技术Cortex-M0系列单片机IAP升级
  • Pycharm中添加Python库指南
  • Oracle OCP / MySQL OCP认证容易通过吗