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

力扣-二叉树-222 完全二叉树节点的数量

思路1

利用层序遍历所有节点即可

代码1

class Solution {
public:int countNodes(TreeNode* root) {if(root == nullptr) return 0;queue<TreeNode*> que;que.push(root);int size = 0;while(!que.empty()){size += que.size();int length = que.size();while(length--){TreeNode* cur = que.front();que.pop();if(cur->left) que.push(cur->left);if(cur->right) que.push(cur->right);}}return size;}
};

思路2

完全二叉树一路向左和一路向右如果深度相同, 那就变成了一颗满二叉树,满二叉树有定义可以计算

代码2

class Solution {
public:int countNodes(TreeNode* root) {if(root == nullptr) return 0;int leftDepth = 0, rightDepth = 0;TreeNode* left = root->left,  *right = root->right;while(left){leftDepth++;left = left->left;}while(right){rightDepth++;right = right->right;}if(leftDepth == rightDepth) return (2<<leftDepth) - 1;return 1 + countNodes(root->left) + countNodes(root->right);}
};

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

相关文章:

  • V93K测试机
  • 【机器学习】监督学习-决策树-CART(Classification and Regression Tree,分类与回归树)详尽版
  • Navicat 迁移数据库 传输数据
  • Jetpack Compose初体验
  • ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
  • 【C++】C++ 旅馆管理系统(含 源码+报告)【独一无二】
  • 快速排序
  • 国内 ChatGPT Plus/Pro 订阅教程
  • 易仓科技ai面试
  • LabVIEW用户界面(UI)和用户体验(UX)设计
  • 字玩FontPlayer开发笔记14 Vue3实现多边形工具
  • 低代码与 Vue.js:技术选型与架构设计
  • 比较循环与迭代器的性能:Rust 零成本抽象的威力
  • 一文了解zookeeper
  • 算法题(67):最长连续序列
  • 大中型企业专用数据安全系统 | 天锐蓝盾终端安全 数据安全
  • Deepseek解读 | UE像素流送与实时云渲染技术的差别
  • CTFSHOW-WEB入门-PHP特性109-115
  • 模糊综合评价法:原理、步骤与MATLAB实现
  • 【数据结构-红黑树】
  • 【STM32】舵机SG90
  • 【Linux】Socket编程—TCP
  • c++11 for auto不定参数
  • C#+redis实现消息队列的发布订阅功能
  • Docker容器基本操作
  • 从无序到有序:上北智信通过深度数据分析改善会议室资源配置
  • 总结:使用JDK原生HttpsURLConnection,封装HttpsUtil工具类,加载自定义证书验证,忽略ssl证书验证
  • 重新定义人机关系边界,Soul以AI社交构建多元社交元宇宙
  • HTTP 参数污染(HPP)详解
  • 阿里云轻量服务器docker部署nginx