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

刷题笔记24——完全二叉树的节点个数

有些事情是不能告诉别人的,有些事情是不必告诉别人的,有些事情是根本没有办法告诉别人的,而且有些事情是,即使告诉了别人,你也会马上后悔的。——罗曼罗兰

222. 完全二叉树的节点个数

  • java的幂运算要 (int) Math.pow(2,l+1)-1
  • 计算满二叉树的节点数量公式:2 ^ height -1
  • 一棵完全二叉树的两棵子树,至少有一棵是满二叉树
  • 计算时间复杂度时,本题比较巧妙的就是,因为完全二叉树的子树也是完全二叉树,所以每次分叉只需要走其中一支即可,即O(logN),而每次算深度即while循环这里需要O(logN),因此时间复杂度为 O(logN*logN)
    在这里插入图片描述
class Solution {public int countNodes(TreeNode root) {if(root==null) return 0;int l = 0;int r = 0;TreeNode lt = root;while(lt.left!=null){lt = lt.left;l++;}TreeNode rt = root;while(rt.right!=null){rt = rt.right;r++;}if(l==r) return (int)Math.pow(2,l+1)-1;return 1 + countNodes(root.left) + countNodes(root.right);}
}

下一章开始刷图算法

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

相关文章:

  • sentinel环境搭建以及微服务接入
  • Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks
  • 阿里云无影云电脑角色AliyunServiceRoleForGws什么意思?
  • 操作系统--------调度算法篇
  • 宝塔composer 安装laravel依赖出现的问题
  • OpenCV自学笔记二十四:支持向量机
  • 网络初识
  • 极坐标和直角坐标的雅克比矩阵推导
  • 经管博士科研基础【25】概率论中的相关基础概念
  • 计算机网络的相关知识点总结(一)
  • 下载github.com上的依赖资源
  • 编写 GPT 提示词的公式 + 资源分享
  • 用HTML、CSS和JavaScript制作的通用进制转换器
  • ArcGIS 10.3软件安装包下载及安装教程!
  • 【数据增强】
  • Ae 效果:CC Force Motion Blur
  • 2023华为杯研究生数学建模竞赛CDEF题思路+模型代码
  • FP独立站之黑科技:AB站收款、斗篷CLOAK
  • 【Linux网络编程】gdb调试技巧
  • ElementUI之登录与注册
  • 报错处理:Error: Redis server is running but Redis CLI cannot connect
  • RocketMQ 源码分析——Producer
  • ISTQB术语表
  • 小米笔试题——01背包问题变种
  • SkyWalking内置MQE语法
  • Springboot2 Pandas Pyecharts 量子科技专利课程设计大作业
  • RabbitMQ里的几个重要概念
  • 23. 图论 - 图的由来和构成
  • 拼多多API接口解析,实现根据ID取商品详情
  • 【JavaScript】解构