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

LeetCode[222]完全二叉树的节点个数

思路:

这个节点个数可以使用递归左儿子个数+递归右儿子个数+1,这个1是根节点,最后结果为节点个数,但我们没有练习到完全二叉树的性质.

完全二叉树的性质是:我简单说一下,大概就是其他节点都满了,就是只缺右面的叶子节点,右面叶子节点缺多少都行,只要不是左面少节点就行。

知道了这个性质,就直到完全二叉树是由满二叉树组成的,那么我们直接求满二叉树的节点就行,满二叉树的节点数量为depth*2-1

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int countNodes(TreeNode root) {if(root == null) return 0;TreeNode left = root.left;TreeNode right = root.right;int leftDepth = 0, rightDepth = 0;while(left != null){left = left.left;leftDepth++;}while(right != null){right = right.right;rightDepth++;}if(leftDepth == rightDepth){return (2<<leftDepth)-1;}return countNodes(root.left) + countNodes(root.right) + 1;//这个+1是添加最后的根节点}
}

 

相关文章:

  • 水库大坝、坝肩混凝土面板变形及岸坡位移多断面多测点安全监测新途径——变焦视觉位移监测仪
  • 【优质会议推荐】2025年遥感与航天航空国际会议(IACRSA 2025)
  • `Release`模式下 编译器优化对 gRPC 远程调用的影响 导致堆栈非法访问
  • leetcode 438. 找到字符串中所有字母异位词
  • Axure项目实战:智慧运输平台后台管理端-运单管理
  • 古诗词鉴赏代码
  • 力扣.H指数力扣.字母异位词力扣.289生命游戏力扣452.用最小数量的箭引爆气球力扣.86分隔链表力扣.轮转数组
  • vue vite textarea标签按下Shift+Enter 换行输入,只按Enter则提交的实现思路
  • MRI学习笔记-表征相似性分析(Representational Similarity Analysis, RSA)
  • RNN神经网络
  • 大模型Pre-Training实战解析:实现Qwen3增量预训练
  • Python实现PDB文件预处理
  • LeetCode 404.左叶子之和的递归求解:终止条件与递归逻辑的深度剖析
  • 中科方德鸳鸯火锅平台使用教程:轻松运行Windows应用!
  • 【竖排繁体识别】如何将竖排繁体图片文字识别转横排繁体,转横排简体导出文本文档,基于WPF和腾讯OCR的实现方案
  • One-shot和Zero-shot的区别以及使用场景
  • 计算机操作系统(十一)调度器/调度程序,闲逛调度与调度算法的评价指标
  • 如何排查服务器 CPU 温度过高的问题并解决?
  • PYTHON训练营DAY29(补)
  • uniapp实现大视频文件上传-- 阿里云oss直传方式 - app、H5、微信小程序
  • wordpress居中/开鲁网站seo转接
  • 广州建站方法/湖北百度seo
  • 酒类网站建设方案/百度快速排名
  • 怎样对一个网站做seo/怎么做网站优化排名
  • 湖州网站建设湖州网站建设/自动点击器软件
  • 做营销的一般逛哪些网站/北京网站优化常识