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

力扣面试150题--完全二叉树的节点个数

Day 51

题目描述

在这里插入图片描述

思路

根据完全二叉树的规律,完全二叉树的高度可以直接通过不断地访问左子树就可以获取,判断左右子树的高度:
1. 如果相等说明左子树是满二叉树, 然后进一步判断右子树的节点数(最后一层最后出现的节点必然在右子树中)
2. 如果不等说明右子树是深度小于左子树的满二叉树, 然后进一步判断左子树的节点数(最后一层最后出现的节点必然在左子树中

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int countNodes(TreeNode root) {if(root==null){return 0;}int left=findhigh(root.left);int right=findhigh(root.right);if(left==right){return (int)Math.pow(2,left)+countNodes(root.right);//左子树是满二叉树,右子树是完全二叉树}else{return (int)Math.pow(2,right)+countNodes(root.left);//右子树是少一层的满二叉树,左子树是完全二叉树}}public int findhigh(TreeNode root){int high=0;while(root!=null){root=root.left;high++;}return high;}
}

相关文章:

  • 【数据结构】单链表练习
  • openresty+lua+redis把非正常访问的域名加入黑名单
  • 百度ocr的简单封装
  • AWS之AI服务
  • 基于Python的简易聊天机器人实现:从原理到实践
  • AWS WebRTC:获取信令服务节点和ICE服务节点
  • SAP-ABAP:在DEBUG过程中修改内表中的数据的方法详解
  • go并发与锁之sync.Mutex入门
  • 鸿蒙仓颉开发语言实战教程:自定义组件
  • ubuntu2x.xx网络不通如何解决
  • 使用requestAnimationFrame编写动画效果或者处理大量数据
  • 基于Java,SpringBoot,Vue,UniAPP宠物洗护医疗喂养预约服务商城小程序管理系统设计
  • OpenGL Chan视频学习-9 Index Buffers inOpenGL
  • Netty创新架构突破链接数瓶颈技术,如何应用于新能源汽车智慧充电桩?
  • Elasticsearch的运维
  • etcd:高可用,分布式的key-value存储系统
  • 5 WPF中的Page页面的使用
  • 【NLP基础知识系列课程-Tokenizer的前世今生第一课】Tokenizer 是什么?为什么重要?
  • React 第四十八节 Router中 useMatch 的使用详细介绍及案例分析
  • LVS 负载均衡群集
  • 网站建设与规划实训总结/网站怎么宣传
  • 如何跟客户沟通网站建设/新一轮疫情最新消息
  • 网站建设拓扑图/想建立自己的网站
  • 青羊区建设网站/百度推广助手怎么用
  • 社会组织网站建设/seo排名工具提升流量
  • 移动端网站建设的方案/免费信息推广网站