Leetcode 222. 完全二叉树的节点个数(中等)
题目:
给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。
*
* 完全二叉树
* 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h
* 层,则该层包含 1~ 2^h 个节点。
思路:labuladong
对于满二叉树,可以通过2^n-1的方式,先计算深度在计算个数。对于普通二叉树遍历所有结点。
那么对于完全二叉树,它肯定是由满二叉树以及普通二叉树组成,因此对于满二叉树的部分,可以直接计算。对于其余部分遍历计算
class Solution { public: int countNodes(TreeNode* root) { if(root==nullptr){ return 0; } TreeNode* left=root->left; int l=1; while(left!=nullptr){ left=left->left; l++; } TreeNode* right=root->right; int r=1; while(right!=nullptr){ right=right->right; r++; } if(l==r){ return pow(2,l)-1; } return 1+countNodes(root->left)+countNodes(root->right); } };
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2016-02-15 【Android性能优化】(一)使用SparseIntArray替换HashMap
2016-02-15 利用ViewHolder优化自定义Adapter的典型写法
2016-02-15 android gravity属性 和 weight属性