介绍两种思想,虽然根本上都是遍历每个结点,但是在写代码的时候采用的是不同的思想。

遍历思想

先定义一个类变量就是采用二叉树遍历的代码,在经过每个节点的时候类变量++,具体代码如下:

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;}
}

二叉树节点数目计算的两种思路相关推荐

  1. c语言返回二叉树的大小,C语言中计算二叉树的宽度的两种方式

    C语言中计算二叉树的宽度的两种方式 二叉树作为一种很特殊的数据结构,功能上有很大的作用!今天就来看看怎么计算一个二叉树的最大的宽度吧. 采用递归方式 下面是代码内容: int GetMaxWidth( ...

  2. 第七篇:使用 CUDA 进行计算优化的两种思路

    前言 本文讨论如何使用 CUDA 对代码进行并行优化,并给出不同并行思路对均值滤波的实现. 并行优化的两种思路 思路1: global 函数 在 global 函数中创建出多个块多个线程对矩阵每个元素 ...

  3. DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测

    DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...

  4. 量子计算机怎么储存,什么是量子计算机_量子计算机原理_量子计算的两种有效方法...

    量子计算机是一种可以实现量子计算的机器,是一种通过量子力学规律以实现数学和逻辑运算,处理和储存信息能力的系统.它以量子态为记忆单元和信息储存形式,以量子动力学演化为信息传递与加工基础的量子通讯与量子计 ...

  5. 利用网络信息减少因果推断中的confounding bias--结合两种思路的新方法

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 本期AI TIME PhD专场,我们有幸邀请到了来自亚利桑那州立大学的博士生郭若城,为我们带来他的精彩分享--利用网络信息减少因果推断中 ...

  6. QT时间差计算的两种方法代码

    QT时间差计算的两种方法 提供两种方法,直接贴出代码供参考,主要用到函数secsTo,toTIme_t(): #include <qdatetime.h>#include <wind ...

  7. 解析word:doc,docx的两种思路

    两种思路: 用相应的库直接读取文件 doc转换成docx python在windows与linux下读取doc文件 https://blog.csdn.net/qq_33447950/article/ ...

  8. IOT Fuzz 两种思路

    IOT Fuzz 两种思路 代码和测试用例 基于Qiling框架和afl++进行跨平台二进制Fuzz Qiling框架 https://docs.qiling.io/en/latest/ https: ...

  9. 计算 java_两种计算Java对象大小的方法(转)

    原文:http://blog.csdn.net/iter_zc/article/details/41822719 另一篇类似文章:http://www.cnblogs.com/magialmoon/p ...

最新文章

  1. Eclipse 最常用的 10 组快捷键,个个牛逼!
  2. window下使用虚拟机安装Linux操作系统CentOS
  3. 美团方法论,苦练基本功
  4. 内核compiler.h的学习
  5. php 匹配多行,PHP-选择与相关表中的多行匹配的行
  6. SpringCloud入门简述
  7. android 6.0 adb,安卓6.0,adb停用系统更新
  8. 如何查看linux下的环境变量
  9. HDU 1026 广度优先搜索,BFS+路径的记录
  10. java.lang中String=和equals()函数解析
  11. 蓝桥杯 ADV-105 算法提高 不同单词个数统计
  12. tensorflow之矩阵相乘与matmul
  13. 计算机系统的组成一般不包括,建筑设备监控子系统组成一般不包括( )A.中央计算机系统B.布线系统C.DDCD.各类传感器及执 - 作业在线问答...
  14. CISP证书有什么作用?考试难度大吗?
  15. 如何在计算机快速删掉快捷方式,电脑桌面上的网页快捷方式怎么删除?怎么在桌面便签上快速删除网页快捷方式...
  16. java文件保险柜,java
  17. 旅游评论文本数据,bert分类,加完整的论文
  18. 小知识·typec耳机原理
  19. Android音视频点/直播模块开发实践总结-zz
  20. solr中英文分词模糊查询

热门文章

  1. kolla all-in-one 安装
  2. 无法显示隐藏文件的解决方法
  3. 陈艳青(为奥运冠军名字作诗)
  4. 《spring 2.0技术手册》的技术写作方式值得学习!
  5. 四种方式话Equal
  6. jQuery原理第一天
  7. chrome中Blackbox Script 黑盒脚本作用及用法
  8. C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
  9. L1-069 胎压监测 (15 分)
  10. php时间函数单字母,ThinkPhp单字母函数