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

【代码随想录day 15】 力扣 222.完全二叉树的节点个数

视频讲解:https://www.bilibili.com/video/BV1eW4y1B7pD/?vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0222.%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%8A%82%E7%82%B9%E4%B8%AA%E6%95%B0.html
力扣题目:https://leetcode.cn/problems/count-complete-tree-nodes/description/

计算二叉树的节点个数涉及到两种情况,一种情况是普通二叉树,我们使用遍历的方法来计算节点个数;另一种情况是完全二叉树,我们可以通过判断哪里开始时完全二叉树,再通过完全二叉树计算公式2^(深度)-1来直接计算节点个数,这可以大大减小计算开销。
判断是否是完全二叉树的方法:遍历左右两边子树深度,如果两边子树深度相等则证明他是完全二叉树。

class Solution {
public:int countNodes(TreeNode* root) {//如果根节点为空,直接返回0if(root==NULL) return 0;TreeNode *left=root->left;TreeNode *right=root->right;//初始化左右深度int leftDepth = 0,rightDepth=0;//一直往左节点遍历while(left){left=left->left;leftDepth++;}//一直往右节点遍历while(right){right=right->right;rightDepth++;}//如果左右深度相等说明他是完全二叉树,我们使用公式计算if(leftDepth==rightDepth){return (2 << leftDepth) - 1; }int leftresult=countNodes(root->left);int rightresult=countNodes(root->right);int result=leftresult+rightresult+1;return result;}
};
http://www.lryc.cn/news/617042.html

相关文章:

  • 【Python 小脚本·大用途 · 第 2 篇】
  • Day11 原理篇
  • afsim2.9_使用QtCreator和VSCode编译
  • Excel版经纬度和百分度互转v1.1
  • 第二章、LSTM(Long Short-term Memory:长短时记忆网络)
  • 基于python/django框架的车型识别系统
  • iptables -F 与 iptables -X
  • 基于Django的图书馆管理系统的设计与实现
  • 精准计算Word文档页数的PHP类
  • foxmail网站邮箱网络营销策略论文
  • 自己做网站排名好吗天津seo推广
  • 长春网站策划制作网页的代码
  • 我想创建一个网站sem 优化价格
  • 网站开发虚拟主机管理系统nba西部最新排名
  • 四川建设部网站官网温州最好的seo
  • 成都建设网站哪个好seo外包杭州
  • 南京学习做网站独立站搭建要多少钱
  • 北京网页设计学校成都sem优化
  • 网站建设方案书 个人做百度推广一个月多少钱
  • 一级a做爰片试看 免费网站百度竞价ocpc
  • php做公司网站seo网站推广怎么做
  • 常州微网站建设游戏搬砖工作室加盟平台
  • 中建建设银行网站北京今日重大新闻
  • wordpress做下载站百度推广代运营公司
  • 网站空间数据库专门看广告的网站
  • 电商网站话费充值怎么做北京推广优化经理
  • 竞价网站服务器台州网站建设优化
  • 常见网站页面布局类型seo流程
  • 开源企业网站管理系统网络广告营销案例有哪些
  • 遇到灾难网站变灰怎么做3000行业关键词