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

上海做网站品牌家具网站建设规划书

上海做网站品牌,家具网站建设规划书,国外的室内设计网站,建设银行官网站下载地址LeetCode222_完全二叉树的结点个数 标签:#位运算 #树 #二分查找 #二叉树Ⅰ. 题目Ⅱ. 示例 0. 个人方法 标签:#位运算 #树 #二分查找 #二叉树 Ⅰ. 题目 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下&…

LeetCode222_完全二叉树的结点个数

  • 标签:#位运算 #树 #二分查找 #二叉树
    • Ⅰ. 题目
    • Ⅱ. 示例
  • 0. 个人方法

标签:#位运算 #树 #二分查找 #二叉树

Ⅰ. 题目

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

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

Ⅱ. 示例

· 示例 1:
在这里插入图片描述
输入:root = [1,2,3,4,5,6]
输出:6

· 示例 2:
输入:root = []
输出:0

· 示例 3:
输入:root = [1]
输出:1

0. 个人方法

根据完全二叉树最后一层的结点 都集中在该层最左边的若干位置 这一特点来做文章。

  1. 如果左子树和右子树的高度相同(左、右都是满的),左子树一定是一个 满二叉树,节点个数为 2^h - 1。继续递归判断右子树的左子树和右子树…;
  2. 若不同,则右子树是满的,继续递归判断左子树的左子树和右子树…。
/*** 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 getHeight(TreeNode* root) {int h = 0;while (root) {h++;root = root->left;}return h;}int countNodes(TreeNode* root) {if (!root) return 0;int leftHeight = getHeight(root->left);int rightHeight = getHeight(root->right);if (leftHeight == rightHeight)return (1 << leftHeight) + countNodes(root->right);elsereturn (1 << rightHeight) + countNodes(root->left);}
};

PS:“1 << leftHeight” 表示将 1 左移 leftHeight 位,即表示 2leftHeight(左子树的结点数为 2leftHeight-1,根结点为 1)

  • 时间复杂度分析
    • getHeight() 时间是 O(log n)(树高);

    • 每一层递归时 getHeight 被调用两次,最多递归 log n 层;

    • 总时间复杂度为 O((log n)^2) —— 比普通 O(n) 的遍历快很多;


文章转载自:

http://WnPnMipu.Lkbkd.cn
http://5VmVJMVH.Lkbkd.cn
http://OUAvVFyU.Lkbkd.cn
http://FYoFs8mK.Lkbkd.cn
http://GMVFDtaz.Lkbkd.cn
http://IXMtVEwQ.Lkbkd.cn
http://SFNyDvBW.Lkbkd.cn
http://CdFqK3ZB.Lkbkd.cn
http://B65RzRTW.Lkbkd.cn
http://COLvfjUZ.Lkbkd.cn
http://OlZjdgau.Lkbkd.cn
http://UFLABzbb.Lkbkd.cn
http://s9R56Lyf.Lkbkd.cn
http://rToRmHuZ.Lkbkd.cn
http://swmIljIJ.Lkbkd.cn
http://Oz5jqs5l.Lkbkd.cn
http://jvEbXIKH.Lkbkd.cn
http://uVuE1RJA.Lkbkd.cn
http://EKBcivOG.Lkbkd.cn
http://qOO2FgKR.Lkbkd.cn
http://ji2vIs79.Lkbkd.cn
http://VyDk4CVh.Lkbkd.cn
http://eVlJH367.Lkbkd.cn
http://wtAZXsIh.Lkbkd.cn
http://vNijWItc.Lkbkd.cn
http://WMra0czw.Lkbkd.cn
http://agq3iySn.Lkbkd.cn
http://31CpvYYT.Lkbkd.cn
http://AhNtNhVi.Lkbkd.cn
http://wn2RfaBC.Lkbkd.cn
http://www.dtcms.com/wzjs/604891.html

相关文章:

  • 网站建设实验作业汝州建设局网站
  • 大同做网站2013电子商务网站建设
  • 代驾网站开发如何做外贸网站
  • 怎么清理网站后门文件菜鸟html教程
  • 如何自己做软件网站中国小康建设网官方网站
  • 做绿植o2o网站怎么样深圳制作网站建设推广
  • 万网域名怎么绑定网站网站报备查询
  • php网站的部署个人网站建设赚取流量费
  • 响应式网站好吗wordpress重置后导航没反应
  • 做啥网站比较好赚钱容桂网站建设联系方式
  • 杭州做外贸网站wordpress h5制作插件
  • 沈阳定制网站开发wordpress 提交熊掌
  • 网站设计公司北京adapt wordpress
  • 佛山公司网站设计个人网站如何搭建
  • 免费asp网站源码下载网络公司是做什么的
  • 如何一个空间做多个网站目前网站开发技术
  • 重庆开网站中小企业网站提供了什么
  • 哪个网站可以免费下载电视剧看创意海报设计
  • 免费做微信链接的网站网站哪类业务建设投入会带来间接收益
  • 设计网站推荐知乎如何获取所有网站
  • 贵州省建设厅建筑官方网站网站开发终止协议书
  • 什么是新闻源网站邯郸单位网站建设
  • 展示网站开发百度个人网站建设
  • 光辉网络 石家庄网站建设该网站正在紧急升级维护中
  • 网站建设的提成wordpress可视化编辑器
  • 网站建设系统开发加强门户网站建设宣传
  • 网站设计制作公司推荐视频制作软件排行榜
  • 网站建设与管理属于什么部门个人网站开发软件
  • 个人网站建站网站建设一般的流程
  • 株洲专业网站建设品牌牡丹江百度推广