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

自己做网站如何月入3k六安哪家做网站好

自己做网站如何月入3k,六安哪家做网站好,商标设计网页,新手自己建设一个网站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://www.dtcms.com/wzjs/550186.html

相关文章:

  • 怎样设计一个公司网站如何直到网站是用什么模板做的
  • 黄骅网站建设公司深圳市网站建设公司
  • 国外做的好的电商网站推荐中国石油工程建设公司
  • 唐山网站制作价格免费wap网站建设
  • 湖南网站营销seo哪家好网站开发的业内人士
  • 网站备案查询工信部管理系统备案期间怎么关闭网站
  • 福州网站建设加推广html5导航网站
  • 国外有没有做物理小实验的网站全屏网站怎么做
  • 云南旅游网站设计企业信息查询网官网
  • wordpress输网址采集网站优化主要内容
  • 求一个手机能看的网站北京网站优化步
  • 网站建设模块有哪些wordpress 侧边栏插件
  • 旅游网站建设策划方案怎么建自己公司网站
  • 给我一个网站吧网站+建设设计
  • 网站建设gzzhixun茶类网站建设方案
  • 手机端网站 优帮云自己做的网站如何上百度
  • 网站首页图建站的公司
  • 网站模板psd素材非专业人士可以做网站编辑的工作吗
  • 张家界网站开发获客软件哪个好
  • js 曲线 网站cp网站开发是什么
  • 单位怎样做网站杭州蚂蚁 做网站的公司
  • 威海网站建设地址美工宝盒网站
  • 个人网站可以做推广不项目投资网
  • 婚纱网站建设步骤和方法哈尔滨服务好的建站方案
  • 湛江网站建设湛江网站标签怎样修改
  • jsp网站建设作业centos 6 wordpress
  • 西丽做网站wordpress app模板
  • 做一个推广网站大概多少钱做网站新乡
  • 北京 广告 手机网站网线制作实验总结
  • 愿景 做中国最受欢迎的互联网网站网站修改标题有影响吗