力扣每日一题——完全二叉树的节点个数

2023-11-10

题目连接
在这里插入图片描述

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int countLevel(TreeNode* root){//返回二叉树的高度
        int level=0;
        while(root){//节点不空时
            level++;
            root=root->left;//不断由左子树向下伸展
        }
        return level;
    }
    int countNodes(TreeNode* root) {
        if(!root){//空节点
            return 0;
        }
        int left = countLevel(root->left);
        int right = countLevel(root->right);
        if(left==right){//左子树一定是满二叉树
            return countNodes(root->right)+(1<<left);
        }
        else{//left=right+1右子树是满二叉树
            return countNodes(root->left)+(1<<right);
        }
    }
};

参考题解链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

力扣每日一题——完全二叉树的节点个数 的相关文章

  • java.io.FileNotFoundException: File does not exist: hdfs://xxx

    一 产生问题背景 我们公司正在准备从cdh迁回社区版hadoop集群 启动flink任务的时候 还未运行就直接报错 Caused by org apache flink yarn YarnClusterDescriptor YarnDepl
  • C#+sqlserver+asp.net婚纱影楼管理系统

    一 源码描述 这是一款简洁十分美观的ASP NET sqlserver源码 界面十分美观 功能也比较全面 比较适合 作为毕业设计 课程设计 使用 感兴趣的朋友可以下载看看哦 二 功能介绍 该源码功能十分的全面 具体介绍如下 婚纱影楼管理系统
  • ECEF和ENU坐标之间的转换

    转载 https gssc esa int navipedia index php Transformations between ECEF and ENU coordinates 1 定义 ENU coordinates local Ea
  • 我的第一个Java程序

    没想到从纯前端转到了JAVA Web 首先第一个 JAVA程序 计算图形面积 使用工厂模式和反射机制实现 Illegal modifier for the interface method paraNeed only public abst
  • redis高可用与集群实战案例

    一 配置redis主从 主备模式 可以实现 Redis 数据的跨主机备份 程序端连接到高可用负载的VIP 然后连接到负载服务器设置的Redis后端 real server 此模式不需要在程序里面配置 Redis 服务器的真实 IP 地址 s
  • vba17-25

    十七 变量默认值 简写变量 常量 1声明变量的同时赋值 数值 0 字符串 空字符串 布尔 False 变体 Empty 空 2 布尔值 false 0 True 1 所有非0的数字转换成布尔类型都是True 3变量定义简写 dim i in

随机推荐

  • 区块链基本特性

    区块链具有去中心化 不可篡改 不可逆 匿名等特性 去中心化 因为整个网络没有中心统治者 系统依靠的是网络上多个参与者的公平约束 所以任意每几个节点的权利和义务都是均等的 而且每一个节点都会储存这个区块链上所有数据 即使该节点被损坏或遭受攻击
  • 使用SWIG编写python的扩展

    环境 python3 8 5 64位 Visual Studio 2017 SWIG 4 0 2 一 安装SWIG https www swig org download html 下载windows 预编译好的文件 解压后把swig ex
  • 建立时间、保持时间、时钟输出延时、时钟偏斜、slack(公式整理)

    文章目录 一道华为笔试题 1 tclk最小周期tclk min 2 时钟建立时间Tsu 3 时钟保持时间Thold 4 时钟输出延时Tco 5 slack 6 时钟偏斜 答案 Reference 一道华为笔试题 1 tclk最小周期tclk
  • 数组的常用方法concat,join,slice和splice的区别,map,foreach,reduce

    1 concat 和join concat 是连对两个或两个数组的方法 直接可以将数组以参数的形式放入 join 是将数组中的所有元素放入一个字符串中 通俗点讲就是可以将数组转换成字符串 2 slice和splice的区别 相同点就是都是对
  • Maven Intellij 配置下载镜像

    在使用maven管理包的时候 总会出现包下载很慢的情况 所以这里我们使用阿里云的仓库来代替maven自己的仓库 来提高下载的速度 Maven 重新指定源 修改maven conf setting XML里面关于mirror的设置 具体内容如
  • 嵌入式Linux小项目之X210上QT5.6.2移植和开发环境搭建

    目录 一 QT背景知识介绍 1 常见GUI系统 2 QT的发展例程 3 QT如何跨平台 4 QT相关的其他一些名字 5 QT的网络资源 二 QT的官网资源开发环境搭建 1 QT官网资源 2 QT开发环境搭建 3 QT的linuxfb介绍 三
  • 在windows下搭建、配置nginx流媒体服务器,并进行rtmp流的推流、拉流测试

    在博主之前的博文 Ubuntu下安装 编译 运行nginx和nginx rtmp module 中讲述了在linux Ubuntu 下搭建nginx流媒体服务器的方法 下面讲述在windows下搭建nginx流媒体服务器的方法 使其支持rt
  • Opencv-python3,处理rtsp流视频-----踩坑总结+VideoCapture.get()详解:

    最近项目在用opencv处理rtsp流相机 中间也踩了很多坑 这里写篇博客帮助那些可能会遇到相似问题的同胞 注 我这里同时用到了四个相机 1 电脑同时连接多个相机后 之后去打开rtsp相机时 初次打开特别耗时 甚至打开失败 在Win10上需
  • 开源技术选型目录(不断整理)

    http www infoq com cn 参见 开源技术选型手册 第1章 闲话开源社区篇 1 1开源软件定义 自由的重新发布 开源软件 源代码 在提供软件的同时也要提供程序源代码 也必须允许其他人对代码进行编辑或修改 如果发行没有待源代码
  • jdbc连接常用url格式

    jdbc mysql localhost 3306 db name serverTimezone Asia Shanghai characterEncoding utf8 useUnicode true 配置文件中是如上写法 写在字符串里的
  • NLP学习(六)hanlp命名实体识别-Python3实现

    环境配置 1 jdk安装配置环境变量 2 jpype安装 pip3 install jpype1 3 hanlp相关资源下载 百度云https pan baidu com s 1sw4fDjiLO0PhvYxJ2YMOOw 提取码4lm4
  • pycharm安装paddle并训练第一个模型

    最近用pycharm安装paddle来训练第一个模型 猫狗分类 条件 需要python解释器3 7 第一步 下载paddle库 这样既可安装好了paddlepaddle 如果以后想继续使用安装好的paddle 可以选中全局的包进行引用 不必
  • Fiddler抓不到包原因排查

    今天使用fiddler的时候抓不到包 网上查找了一下 原因有以下几个 1 代理未设置成功 最先应该检查浏览器代理的设置是否是正确的 2 误设置成了不抓包 检查 fiddler 菜单项中 Capture Traffic 选项和 fiddler
  • OpenFeign使用

    OpenFeign使用 在微服务的架构中 传统的http客户端如Httpclient Okhttp HttpURLConnection RestTemplate WebClient 显然不适合 毕竟需要动态的获取服务地址 和进行负载均衡调用
  • Qt服务器接受多个客户端

    1 指定父对象 监听套接字 indexSocket 0 监听套接字 指定父对象 让其自动回收空间 tcpServer new QTcpServer this const QString IP 192 168 9 11 QHostAddres
  • Hyper-V无法使用鼠标的解决办法

    使用Hyper V建立一个新的虚拟机后 从Hyper V的控制台进入系统 会发现无法使用鼠标 解决办法如下 点击控制台的操作 gt 插入集成服务安装盘 此时会自动开始安装 安装完成后会需要重启虚拟机 重启后生效 若点击 插入集成服务安装盘
  • 基于 Flink、ClickHouse 的舆情分析系统:系统详细设计说明书

    文章目录 1 引言 1 1 编写目的 1 2 背景 1 3 参考资料 1 4 术语定义及说明 2 设计概述 2 1 任务和目标 2 1 1 需求概述 2 1 2 运行环境概述 2 1 3 条件与限制 2 1 4 详细设计方法和工具 3 系统
  • 实验10 防火墙安全应用试验

    实验10 防火墙安全应用试验 实验目的 实验环境与设备 过程如下 实验目的 理解防火墙的基本概念和基本工作原理 掌握瑞星个人防火墙的使用和设置方法 掌握金山毒霸个人防火墙的使用和设置方法 实验环境与设备 要求 win7操作系统 SQL Se
  • redis 的java客户端 基础(一)

    目录 一 redis的客户端语言支持 二 Jedis快速入门 2 1 Jedis连接池 2 1 1 创建Jedis的连接池 三 SpringDataRedis 3 1 快速入门SpringDataRedis 一 redis的客户端语言支持
  • 力扣每日一题——完全二叉树的节点个数

    题目连接 Definition for a binary tree node struct TreeNode int val TreeNode left TreeNode right TreeNode int x val x left NU