二叉树节点数目计算的两种思路
介绍两种思想,虽然根本上都是遍历每个结点,但是在写代码的时候采用的是不同的思想。
遍历思想
先定义一个类变量就是采用二叉树遍历的代码,在经过每个节点的时候类变量++,具体代码如下:
public class CountTreeNodeSize {public static int count = 0;//任何一种遍历方法都可以public static void countTreeNodeSize1(TreeNode root){if (root == null){return;}count++;countTreeNodeSize1(root.left);countTreeNodeSize1(root.right);}
}
分散汇集思想
首先要明确二叉树具有递归定义的特性,分为左子树和右子树,计算节点总数时,先去计算左子树节点和右子树节点,这个树的节点总数就是左子树节点数+右子树节点数+ 1(根节点)。下面是代码:
public class CountTreeNodeSize {public static int countTreeNodeSize2(TreeNode root){if (root == null){return 0;}int leftSubTreeNodeSize = countTreeNodeSize2(root.left);int rightSubTreeNodeSize = countTreeNodeSize2(root.right);return leftSubTreeNodeSize + rightSubTreeNodeSize + 1;}
}
二叉树节点数目计算的两种思路相关推荐
- c语言返回二叉树的大小,C语言中计算二叉树的宽度的两种方式
C语言中计算二叉树的宽度的两种方式 二叉树作为一种很特殊的数据结构,功能上有很大的作用!今天就来看看怎么计算一个二叉树的最大的宽度吧. 采用递归方式 下面是代码内容: int GetMaxWidth( ...
- 第七篇:使用 CUDA 进行计算优化的两种思路
前言 本文讨论如何使用 CUDA 对代码进行并行优化,并给出不同并行思路对均值滤波的实现. 并行优化的两种思路 思路1: global 函数 在 global 函数中创建出多个块多个线程对矩阵每个元素 ...
- DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测
DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...
- 量子计算机怎么储存,什么是量子计算机_量子计算机原理_量子计算的两种有效方法...
量子计算机是一种可以实现量子计算的机器,是一种通过量子力学规律以实现数学和逻辑运算,处理和储存信息能力的系统.它以量子态为记忆单元和信息储存形式,以量子动力学演化为信息传递与加工基础的量子通讯与量子计 ...
- 利用网络信息减少因果推断中的confounding bias--结合两种思路的新方法
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 本期AI TIME PhD专场,我们有幸邀请到了来自亚利桑那州立大学的博士生郭若城,为我们带来他的精彩分享--利用网络信息减少因果推断中 ...
- QT时间差计算的两种方法代码
QT时间差计算的两种方法 提供两种方法,直接贴出代码供参考,主要用到函数secsTo,toTIme_t(): #include <qdatetime.h>#include <wind ...
- 解析word:doc,docx的两种思路
两种思路: 用相应的库直接读取文件 doc转换成docx python在windows与linux下读取doc文件 https://blog.csdn.net/qq_33447950/article/ ...
- IOT Fuzz 两种思路
IOT Fuzz 两种思路 代码和测试用例 基于Qiling框架和afl++进行跨平台二进制Fuzz Qiling框架 https://docs.qiling.io/en/latest/ https: ...
- 计算 java_两种计算Java对象大小的方法(转)
原文:http://blog.csdn.net/iter_zc/article/details/41822719 另一篇类似文章:http://www.cnblogs.com/magialmoon/p ...
最新文章
- Eclipse 最常用的 10 组快捷键,个个牛逼!
- window下使用虚拟机安装Linux操作系统CentOS
- 美团方法论,苦练基本功
- 内核compiler.h的学习
- php 匹配多行,PHP-选择与相关表中的多行匹配的行
- SpringCloud入门简述
- android 6.0 adb,安卓6.0,adb停用系统更新
- 如何查看linux下的环境变量
- HDU 1026 广度优先搜索,BFS+路径的记录
- java.lang中String=和equals()函数解析
- 蓝桥杯 ADV-105 算法提高 不同单词个数统计
- tensorflow之矩阵相乘与matmul
- 计算机系统的组成一般不包括,建筑设备监控子系统组成一般不包括( )A.中央计算机系统B.布线系统C.DDCD.各类传感器及执 - 作业在线问答...
- CISP证书有什么作用?考试难度大吗?
- 如何在计算机快速删掉快捷方式,电脑桌面上的网页快捷方式怎么删除?怎么在桌面便签上快速删除网页快捷方式...
- java文件保险柜,java
- 旅游评论文本数据,bert分类,加完整的论文
- 小知识·typec耳机原理
- Android音视频点/直播模块开发实践总结-zz
- solr中英文分词模糊查询