三行代码求二叉树的节点个数以及二叉树的深度

2023-10-27

二叉树的节点格式如下:

struct BinaryTreeNode
{
	int m_nValue;
	BinaryTreeNode* m_pLeft;
	BinaryTreeNode* m_pRight;
};

1.求二叉树的节点个数

这道题比较简单,使用随便一种遍历方式,在遍历的途中将节点个数记录下来即可,但是这样要声明一个静态变量去记录节点个数。为了简便,用递归的方式来实现:

int Count(binaryTreeNode* t)
{
	if (t == NULL)
		return 0;
	return 1 + Count(t->m_pLeft) + Count(t->m_pRight);
}

2.求二叉树的深度

二叉树的深度应该为左右子树中深度的最大值,因此我们就可以用递归的方法去求二叉树的深度。

代码如下:

int TreeDeep(binaryTreeNode* t)
{
	if (t == NULL)return 0;
	int left = TreeDeep(t->m_pLeft) + 1, right = TreeDeep(t->m_pRight)+1;
	return left > right ? left : right;
	
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三行代码求二叉树的节点个数以及二叉树的深度 的相关文章

随机推荐

  • Failed to bind properties under ‘spring.datasource.password‘ to java.lang.String

    1 记录一次坑 在配置jasypt时 一些都很顺利 pom引入 项目启动 从网上搜索资料jar包启动手动设置秘钥 java jar Djasypt encryptor password 1234qwer test jar 但是在部署的时候
  • P2P技术简介

    P2P技术简介 NAT Network Address Translation 穿越 俗称打洞 技术 前言 p2p已经存在于我们生活的方方面面 我们通过下载在工具 比如迅雷 bitorent 各种网盘 下载 观看live视频 ppstrea
  • markdown转xmind思维导图 & markdown绘制思维导图

    markdown转xmind思维导图教程 直接看这篇博客 很实用的markdown转xmind思维导图教程 xmind思维导图转markdown 直接看这篇博客Xmind转markdown教程 Note 如果你的xmind8安装路径上有中文
  • 入门级题解138. 复制带随机指针的链表

    题目解读 复制链表 这个链表带随机指针 https leetcode cn com problems copy list with random pointer solution fu zhi dai sui ji zhi zhen de
  • windows下qt工程移植到linux

    把工程里面的目录Debug GeneratedFiles Release Win32 x64和文件 user sln vcxproj filters删掉 这里根据vs版本的不同删除的文件和目录也可能不同 只要保留 h cpp qrc 没有这
  • Linux网络服务:DNS域名解析服务

    目录 一 理论 1 DNS系统 2 查询类别 3 DNS服务器查询过程 4 hosts文件 5 主服务器配置文件 二 实验 1 主备DNS服务器 2台服务器都正常 2 主备DNS服务器 1台主服务器关闭 3 问题 一 理论 1 DNS系统
  • 基于multisim 实现的“出租车计价器的设计与仿真”

    1 设计要求 1 计费器具有行车里程计费 等候时间计费及起价等三部分 3位数码管显示最大金额为99 9 单位 元 2 行车里程单价 00元 等候时间单价 00元 5分钟 及起价 00元 均可以由键盘输入 此实验中行车里程单价和等候时间单价均
  • chatgpt赋能python:Python反向查找字符——一个强大的文本处理工具

    Python反向查找字符 一个强大的文本处理工具 在搜索引擎优化中 文本处理是非常关键的一环 其中 反向查找字符在文本处理中也扮演着一个重要的角色 能够帮助我们快速地定位和处理文本中的特定内容 在这篇文章中 我们将介绍反向查找字符在Pyth
  • Linux下which、whereis、locate、find 命令的区别

    http blog chinaunix net uid 20554039 id 3035417 html 我们经常在linux要查找某个文件 但不知道放在哪里了 可以使用下面的一些命令来搜索 这些是从网上找到的资料 因为有时很长时间不会用到
  • 管理科学基础知识__后悔值计算

    看一个例题 某企业要投产一种新产品 生产方案有四种 A 新建全自动生产线 B 新建半自动生产线 C 购置旧生产设备 D 外包加工生产 未来该产品的销售前景估计为很好 一般和较差三种 不同情况下该产品的收益值如下表所示 单位 万元 用后悔值
  • 【Python】解决AttributeError: ‘xml.etree.ElementTree.Element‘ object has no attribute ‘getchildren‘问题

    getchildren在python 3 9中已经被移除 如果项目中使用会显示错误 AttributeError xml etree ElementTree Element object has no attribute getchildr
  • python中strptime()和strftime()的区别和用法

    python中strptime 和strftime 的区别和用法 之前每次遇到时间格式转换都要去搜 今天决定自己记录一下这两个方法的区别和用法 也方便自己加深印象 1 strptime中的p代表parse 意为解析 也就是将一个字符串解析成
  • 【点宽专栏】国泰君安——综合期限多样性的趋势选股策略

    前言 此策略报告策略构建部分参考 国泰君安综合期限多样性的趋势选股策略数量化专题之九十 原报告思想 移动平均线由于具有简单直观的特征 是最常用的技术指标之一 除了简单发送多空信号之外 移动平均指标作为历史股价走势信息的载体 能够对未来收益起
  • Python Pandas 列数据筛选方法汇总

    Pandas 列数据筛选方法汇总 数据准备 一 筛选得到指定的列 1 1 根据 label 选择特定的几列 1 2 选择单列的两种方式 1 3 通过正则表达式选择列 二 同时对 行 和 列 进行筛选 2 1 通过切片 df loc 2 2
  • pytorch搭建squeezenet网络的整套工程,及其转tensorrt进行cuda加速

    本来 前辈们用caffe搭建了一个squeezenet的工程 用起来也还行 但考虑到caffe的停更后续转trt应用在工程上时可能会有版本的问题所以搭建了一个pytorch版本的 以下的环境搭建不再细说 主要就是pyorch 其余的需要什么
  • 【Java】Java中的多态

    文章目录 一 什么是多态 二 多态实现的条件 三 重写 3 1 什么是重写 3 2 重写和重载的区别 四 向上转型和向下转型 4 1 向上转型 4 2 向下转型 五 多态的优缺点 六 避免在构造方法中调用重写的方法 一 什么是多态 在Jav
  • MySQL多表关联查询

    文章目录 多表查询 用户表 用户角色表 角色表 权限表 角色权限表 表间关系 MySQL连接 关联查询用户表和用户角色表 关联查询用户表 用户角色表和角色表 多表连接 笛卡尔集 外连接
  • 软件测试报告可以包含哪些测试内容?

    软件测试报告可以包含以下测试内容 功能测试 测试软件的基本功能是否实现 是否符合要求 性能测试 测试软件的响应速度 并发能力 稳定性等性能指标 界面测试 测试软件的用户界面是否友好 易于使用 兼容性测试 测试软件在不同的操作系统 浏览器 设
  • Springboot中 @ConfigurationProperties对象 静态方法调用无效

    1 https blog csdn net weixin 43404791 article details 105430606 2 https blog csdn net qq827245563 article details 106296
  • 三行代码求二叉树的节点个数以及二叉树的深度

    二叉树的节点格式如下 struct BinaryTreeNode int m nValue BinaryTreeNode m pLeft BinaryTreeNode m pRight 1 求二叉树的节点个数 这道题比较简单 使用随便一种遍