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

鹰潭城乡建设局的网站大连市网站制作电话

鹰潭城乡建设局的网站,大连市网站制作电话,建设交流网站,网站建设指引Hello,大家好,我是阿月!坚持刷题,老年痴呆追不上我,今天刷:完全二叉树的节点个数 题目 222.完全二叉树的节点个数 代码实现 class TreeNode {int val;TreeNode left, right;public TreeNode(int val) …

Hello,大家好,我是阿月!坚持刷题,老年痴呆追不上我,今天刷:完全二叉树的节点个数

题目

222.完全二叉树的节点个数
在这里插入图片描述

代码实现

class TreeNode {int val;TreeNode left, right;public TreeNode(int val) {this.val = val;this.left = this.right = null;}
}public class CompleteBinaryTreeCount {// 计算完全二叉树的节点个数public int countNodes(TreeNode root) {if (root == null) {return 0;}int leftHeight = leftHeight(root);int rightHeight = rightHeight(root);if (leftHeight == rightHeight) {// 左子树是满二叉树return (1 << leftHeight) - 1;} else {// 左子树不是满二叉树,递归计算左右子树的节点数return 1 + countNodes(root.left) + countNodes(root.right);}}// 计算左子树的高度private int leftHeight(TreeNode root) {int height = 0;while (root != null) {height++;root = root.left;}return height;}// 计算右子树的高度private int rightHeight(TreeNode root) {int height = 0;while (root != null) {height++;root = root.right;}return height;}public static void main(String[] args) {// 创建一个完全二叉树示例TreeNode root = new TreeNode(1);root.left = new TreeNode(2);root.right = new TreeNode(3);root.left.left = new TreeNode(4);root.left.right = new TreeNode(5);root.right.left = new TreeNode(6);CompleteBinaryTreeCount solution = new CompleteBinaryTreeCount();int nodeCount = solution.countNodes(root);System.out.println("完全二叉树的节点个数: " + nodeCount);}
}

实现总结

  • 完全二叉树:完全二叉树的定义是除了最后一层外,其它各层的节点数都达到最大值,且最后一层的节点依次从左到右排列。这一特性对计算节点数有重要影响。
  • 确定解题方法:常见的方法包括递归和迭代。在了解完全二叉树的性质后,可以选择合适的方法求解节点数,上面实现就采用了递归的方式实现。
  • 确定节点数计算方式:针对完全二叉树的特性,可以通过一些方法,如树的高度、子树的特性等来计算节点数。上面实现通过计算左子树和右子树的高度来确定完全二叉树的结构,如果左右子树高度相等,则左子树是满二叉树,节点个数可以通过2的幂次方计算。如果左右子树高度不等,则递归计算左右子树的节点数。
  • 考虑边界情况:对于空树或者只有根节点的情况,需要特殊处理。
  • 时间复杂度O(log^2 N)。递归的深度为树的高度,每次递归中需要计算左右子树的高度,因此时间复杂度为 O(log N),其中 N 为节点个数。在每层递归中,都需要进行一次高度计算,高度计算的时间复杂度也为 O(log N),因此总体时间复杂度为 O(log^2 N)
http://www.yayakq.cn/news/351287/

相关文章:

  • 网站的外部链接怎么做邯郸网站建设多少钱
  • 南昌建设医院官方网站湖北强涛建设工程有限公司网站
  • 社区教育网站建设项目计划书wordpress简单统计插件
  • 公众号制作视频教学视频seo培训课程
  • 莆田系医院的网站用什么做的网站开发者模式下怎么保存图片
  • 如何提高景区旅游网站建设为什么做金融网站犯法
  • 找工作室的网站微服务网站开发
  • 西安网站建设王永杰html网站建设基本流程图
  • 临沂手机网站信息推广技术公司电话官网建设银行网站
  • 网站怎样添加百度地图钢结构平台设计
  • 做pc网站软件WordPress文件word
  • 外贸公司网站建设费会计科目高新区手机网站建设
  • 上海做网站的企业erp系统与网站对接长沙
  • 制作一个网站并上传访问常熟有没有做阿里巴巴网站
  • 网站建设后端工程师岗位职责景德镇市城市建设规划网站
  • 专门做诺丽果的网站东莞网络科技有限公司
  • 西安网站开发制作公司汕头网站关键词排名
  • 建设网站的实验目的在线代理网页免费
  • 我做网站了wordpress 上传文件中文乱码
  • 上海建设厅焊工证查询网站网站集约化建设的通知
  • 合肥建站公司排名前十名秦皇岛网站建设公司
  • 沈阳营商环境建设局网站在线销售型网站
  • 租房网站网站建设的自查报告
  • cps广告联盟网站百度seo推广首选帝搜软件
  • 做网站需要多少钱呢网址大全12306
  • 公司网站维护该谁来做网站seo优化步骤
  • 梧州市建设局网站wordpress 总访问量
  • 网站开发怎么收客户费dedecms wordpress phpcms
  • 衡水做网站企业网络运营策划
  • 郴州网站建设哪家比较好小程序搭建系统