24-树-完全二叉树的节点个数

这是树的第24篇算法,力扣链接。

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

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

示例 1:

输入:root = [1,2,3,4,5,6]
输出:6

用过层级遍历数过二叉树的节点数:

func countNodes(root *TreeNode) int {var result intif root == nil {return result}stack := []*TreeNode{root}for len(stack) > 0 {node := stack[len(stack)-1]stack = stack[:len(stack)-1]result++if node.Right != nil {stack = append(stack, node.Right)}if node.Left != nil {stack = append(stack, node.Left)}}return result
}

还有利用完美二叉树的做法,先判断是否是满节点,如果满的话直接计算,不满的话递归去做。

func countNodes(root *TreeNode) int {if root == nil {return 0}leftCount, rightCount := 0, 0left, right := root, rootfor left != nil {leftCount++left = left.Left}for right != nil {rightCount++right = right.Right}if leftCount == rightCount {return 1<<leftCount - 1}return 1 + countNodes(root.Left) + countNodes(root.Right)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/703465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selenium自动化测试:提升效果的关键技巧

在软件开发过程中&#xff0c;自动化测试是提高效率和质量的重要手段。而Selenium作为一个广泛使用的自动化测试工具&#xff0c;为开发者提供了强大的功能和灵活性。本文将介绍Selenium的概念&#xff0c;并分享一些提升自动化测试效果的关键技巧。 什么是Selenium&#xff1…

HarmonyOS应用开发者基础认证 模拟考试 题库

模拟考试 1.在Colum和Row容器组件中&#xff0c;justifycontent用于设置子组件在主轴方向上的对齐格式&#xff0c;alignItems用于设置子组件在交叉抽方向上的对齐格式。 正确(True) 2.Video组件可以支持本地视频路径和网络路径播放。播放网络视频时&#xff0c;需要申请权限oh…

Intel SGX 概述

文章目录 前言一、SGX介绍1.1 指令介绍1.2 数据结构 二、内存保护过程2.1 enclave页面缓存&#xff08;EPC&#xff09;2.2 Enclave页面缓存映射&#xff08;EPCM&#xff09; 参考资料 前言 SGX是Intel开发的新的处理器技术&#xff0c;可以在计算平台上提供一个可信的空间&a…

AI智能分析网关V4智慧工厂视频智能监管与风险预警平台建设方案

一、背景需求分析 1&#xff09;随着信息技术的迅猛发展和制造业竞争的加剧&#xff0c;智慧工厂成为了推动制造业转型升级的重要引擎。智慧工厂解决方案通过整合物联网、人工智能、大数据分析等先进技术&#xff0c;实现生产过程的智能化、自动化和高效化&#xff0c;为企业提…

python 基础知识点(蓝桥杯python科目个人复习计划52)

今日复习内容&#xff1a;还是做题 例题1&#xff1a;四元组问题 问题描述&#xff1a; 从小学开始&#xff0c;小明就是一个非常喜欢数学的孩子。他喜欢用数学的方式解决各种问题。在他的高中时期&#xff0c;他遇到了一个非常有趣的问题&#xff0c;那就算给定一个长度为n…

openslide Could not find module ‘libopenslide-0.dll‘

本文仅对与在win操作系统下的用户&#xff0c;在openslide官网中下载对应的二进制文件&#xff0c;然后使用pip安装 pip install openslide-python 解压二进制文件&#xff0c;把bin目录下的所有文件复制粘贴到python环境中就行&#xff0c;例如我使用的环境是anaconda的base…

Day41|动态规划3

整数拆分 思路分析&#xff1a; 1.dp[i]的含义是分拆数字i之后&#xff0c;得到的最大乘积为dp[i]. 2.确定递推公式 拆分出的数可能为2个&#xff0c;或两个以上。 拆分结果必定是小于这个数本身&#xff0c;最小为1。 j从1开始遍历&#xff0c;拆分出的数字逐渐变大&…

Android java中内部类的使用

一.成员内部类 实验1&#xff1a;成员内部类 class Outer {private int a 10;class Inner {public void printInfo(){System.out.println("a "a);}}}public class InnerDemo {public static void main(String args[]) {Outer o new Outer();Outer.Inner i o.new…

K8S节点GPU虚拟化(vGPU)

vGPU实现方案 4paradigm提供了k8s-device-plugin,该插件基于NVIDIA官方插件(NVIDIA/k8s-device-plugin),在保留官方功能的基础上,实现了对物理GPU进行切分,并对显存和计算单元进行限制,从而模拟出多张小的vGPU卡。在k8s集群中,基于这些切分后的vGPU进行调度,使不同的容器…

数据结构--双向链表专题

目录 1. 双向链表的结构2. 实现双向链表预先的准备初始化尾插、头插尾删、头删查找在pos位置之后插⼊数据删除pos位置的数据 3. 顺序表和双向链表的分析 1. 双向链表的结构 注意&#xff1a;这里的“带头”跟前面我们说的“头结点”是两个概念&#xff0c;为了更好的理解直接称…

期权Delta动态对冲成本计算—基于效用的Whalley-Wilmott 方法

Whally 和 Wilmott方法 交易员通常采用 Whally 和 Wilmott 的渐近解&#xff0c;这种方法计算起来比较简单&#xff0c;在实际操作中有非常广泛的应用。 Whally 和 Wilmott&#xff08;1997&#xff09;假设交易成本很小&#xff0c;那么就可以得到 HN 方法的渐进解法&#xf…

Spring Security源码学习

Spring Security本质是一个过滤器链 过滤器链本质是责任链设计模型 1. HttpSecurity 【第五篇】深入理解HttpSecurity的设计-腾讯云开发者社区-腾讯云 在以前spring security也是采用xml配置的方式&#xff0c;在<http>标签中配置http请求相关的配置&#xff0c;如用户…

OLED创新产品:49寸OLED透明屏展示柜

49寸透明屏展示柜是一种采用OLED透明屏技术的展示设备&#xff0c;具有透明特性和高清显示效果。它通常用于商店、展厅、博物馆等场所&#xff0c;用于展示商品、艺术品、文物等物品。 这种展示柜的特点是可以将展品放置在透明的OLED屏幕上&#xff0c;使得展品仿佛悬浮在空中&…

【Java笔记】01 概述

【Java笔记】01 概述 一、java特性 1.面向对象的&#xff08;oop) 2.健壮的&#xff0c;由强制类型机制、异常处理、垃圾的自动收集等保证 3.跨平台性的&#xff0c;一个编译好的class文件可在多个操作系统下运行 4.解释性的 解释性&#xff1a;编译后的代码&#xff0c;不能直…

C++基础知识(四:类的学习)

类 类指的就是对同一类对象&#xff0c;把所有的属性都封装起来&#xff0c;你也可以把类看成一个高级版的结构体。 【1】定义 class 类名 { 访问权限:成员属性; 访问权限:成员方法; }访问权限&#xff1a; public:共有的&#xff0c;类内、类外和子类中都可以访问 private:私有…

【AIGC大模型】跑通wonder3D (windows)

论文链接&#xff1a;https://arxiv.org/pdf/2310.15008.pdf windows10系统 显卡&#xff1a;NVIDIA rtx 2060 一、安装anaconda 二、安装CUDA 11.7 (CUDA Toolkit 11.7 Downloads | NVIDIA Developer) 和 cudnn 8.9.7(cuDNN Archive | NVIDIA Developer)库 CUDA选择自定…

Mysql数据库学习之范式

范式 范式简介 在关系型数据库中&#xff0c;关于数据表设计的基本原则、规则称为范式。可以理解为&#xff0c;一张数据表的设计结构需要满足的某种设计标准的级别&#xff0c;要想设计一个结构合理的关系型数据库&#xff0c;必须满足一定的范式。 范式都包含哪些 6种范式…

matlab|计及源荷不确定性的综合能源生产单元运行调度与容量配置随机优化模型

目录 1 主要内容 1.1 风光场景聚类 1.2 主模型程序结果 1.3 随机模型和确定性模型对比 1.4 有无储气对比 1.5 煤价灵敏性分析 1.6 甲烷价格灵敏性分析 2 部分程序 3 下载链接 1 主要内容 本程序复现《计及源荷不确定性的综合能源生产单元运行调度与容量配置两阶段随机…

300分钟吃透分布式缓存-14讲:大数据时代,MC如何应对新的常见问题?

大数据时代 Memcached 经典问题 随着互联网的快速发展和普及&#xff0c;人类进入了大数据时代。在大数据时代&#xff0c;移动设备全面融入了人们的工作和生活&#xff0c;各种数据以前所未有的 速度被生产、挖掘和消费。移动互联网系统也不断演进和发展&#xff0c;存储、计…

信息安全管理与评估赛题解析-内存取证(含环境)

内存取证解析 文章目录 内存取证解析题目&答案:解题过程:1. 搜集内存信息。2. 检查此文件是否可用,如下图所示就是可以正常使用的情况。也可以不检查直接往下操作。3. 查看用户名及其哈希值4. 爆破系统密码5. 想要获取IP地址需要查看网络连接情况6. 想要获取主机名需要找…