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

宝应县天宇建设网站网站用什么技术实现

宝应县天宇建设网站,网站用什么技术实现,在html中做网站 视频,国内做卷学习网站题目描述 给你一棵 完全二叉树 的根节点root ,求出该树的节点个数。 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位…

题目描述

给你一棵 完全二叉树 的根节点root ,求出该树的节点个数。

完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。

题目分析

迭代法

简单暴力直接上层次遍历!(万能的层次遍历)

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int countNodes(TreeNode* root) {// 层次遍历queue<TreeNode*> q;if(root!=NULL) q.push(root);int num = 0;    // 节点个数numwhile(!q.empty()){int size = q.size();while(size--){  // 遍历每层节点TreeNode* node = q.front();q.pop();num++;// 放入该节点下层的左右孩子if(node->left) q.push(node->left);if(node->right) q.push(node->right);}}return num;}
};

递归法

递归计算左右子树的结点个数,然后合并。

class Solution {
public:int countNodes(TreeNode* root) {// 递归遍历:每一层都在计算子树的节点数量// 递归终止条件:if(root==NULL) return 0;int left = countNodes(root->left);int right = countNodes(root->right);int total = left + right + 1;return total;}
};

不过这题有个特殊条件:完全二叉树。完全二叉树有两种情况,一种是满二叉树,另一种是最后一层叶子节点不是满的。我们知道,满二叉树的节点数是很好计算的,也就是 2 n − 1 2^n-1 2n1 n n n是深度。那么我们可以利用递归计算寻找到的满二叉树的节点数量,一层一层传上来,就得到了整体完全二叉树的节点数量。

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) {left = left->left;leftDepth++;}while(right){right = right->right;rightDepth++;}if(leftDepth==rightDepth){  // 判断当前子树是不是满二叉树,即左右深度相同// 如果是满二叉树,则返回节点个数return (2 << leftDepth) - 1;}// 单层递归逻辑return countNodes(root->left) + countNodes(root->right) + 1;}
};
http://www.yayakq.cn/news/837739/

相关文章:

  • 网站建设需要经历什么步骤seo外贸推广
  • 怎么做产品的网站黄岛做网站
  • 富德生命人寿保险公司官方网站校园推广策略
  • 企业网站源码cmsvs做网站怎么做窗体
  • wordpress自适应建站给企业做宣传网站的好处
  • 个人可以架设网站吗高级网站开发工程师
  • 论述网站建设整个流程俄语网站建设注意事项
  • 湛江优化网站排名寻找网站设计与制作
  • 美橙互联建站网站被截止咸阳市城市建设管理局网站
  • 摄影网站上的照片做后期嘛网站外链建设与维护
  • 沈阳网站建设公司推广平台收费标准
  • 网站设计大小晋城市建设局网站
  • 什么是网站建设的重点山东跨境电商建站公司
  • 做传媒网站公司艺术设计专业
  • 徐汇做网站公司泰安网站建设 九微米
  • 线下推广公司东莞公司seo优化
  • 网站备案就是合法的福州app开发定制
  • 商务网站建设的项目体会洛阳制作网站公司吗
  • 岳阳建网站广州番禺人才网官网
  • 做弹幕网站wordpress 多页面
  • 网站优化的作业及意义百度网站流量查询
  • 网站租空间多少钱厦门网红酒店
  • 平谷建站推广html5网站开发的源码
  • 网站如何防注册机做网站运营需要学什么
  • 十堰学校网站建设wordpress toggle 插件
  • 网站建设服务包括什么不良网站举报中心官网
  • 秦皇岛建设网站logo设计在线生成免费标智客
  • 网站建设的会计核算大连网站开发乛薇
  • wap类网站我的小程序入口
  • 电子商务网站设计思路网站开发女