代码随想录刷题随记14-二叉树3

代码随想录刷题随记14-二叉树3

104.二叉树的最大深度

leetcode 链接

递归

class Solution {
public:int sub(TreeNode * root){if(root->left==nullptr&&root->right==nullptr)return 1;int lefth=root->left==nullptr?0:sub(root->left);   int righth=root->right==nullptr?0:sub(root->right); return lefth>=righth ? lefth+1:righth+1;}int maxDepth(TreeNode* root) {if(root==nullptr)return 0;return sub(root);}
};

本题也可以利用上一节层次遍历求解。

111.二叉树的最小深度

leetcode 链接
不能这么写:

int leftDepth = getDepth(node->left);
int rightDepth = getDepth(node->right);
int result = 1 + min(leftDepth, rightDepth);
return result;

必须要满足是到叶子结点的高度
注意误区:
在这里插入图片描述
非递归版本:仍然可以利用层次遍历求解

class Solution {
public:int minDepth(TreeNode* root) {if(root==nullptr)return 0;queue<TreeNode *> myqueue;myqueue.push(root);int height=1;int retheight=INT_MAX;while(!myqueue.empty()){int size=myqueue.size();for(int i=0;i<size;i++){       TreeNode * cur=myqueue.front();myqueue.pop();if(cur->left!=nullptr)myqueue.push(cur->left);if(cur->right!=nullptr){myqueue.push(cur->right);}if(cur->left==nullptr&&cur->right==nullptr)return height;}height++;}      return height;     }
};

222.完全二叉树的节点个数

leetcode 链接
可以按照普通的二叉树层次遍历所有的节点统计个数
也可以利用完全二叉树的性质

class Solution {
public:int countNodes(TreeNode* root) {if(root==nullptr)return 0;TreeNode * left=root->left;TreeNode * right=root->right;int lefth=0;int righth=0;while(left!=nullptr){left=left->left;lefth++;}while(right!=nullptr){right=right->right;righth++;}if(lefth==righth)return (2<<lefth)-1;return countNodes(root->left)+countNodes(root->right)+1;}
};

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

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

相关文章

lua学习笔记6(经典问题输出99乘法表)

print("************for循环的99乘法表*************") for i 1, 9 dolocal line "" -- 创建一个局部变量来累积每行的输出--local 是一个关键字&#xff0c;用于声明一个局部变量。for j 1, i doline line .. j .. "*" .. i .. ""…

Redis常用命令补充和持久化

一、redis 多数据库常用命令 1.1 多数据库间切换 1.2 多数据库间移动数据 1.3 清除数据库内数据 1.4 设置密码 1.4.1 使用config set requirepass yourpassword命令设置密码 1.4.2 使用config get requirepass命令查看密码 二、redis高可用 2.1 redis 持久化 2.1.1 持…

骨架屏:提升用户体验的巧妙技巧

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

基于tensorflow和kereas的孪生网络推理图片相似性

一、环境搭建 基础环境&#xff1a;cuda 11.2 python3.8.13 linux ubuntu18.04 pip install tensorflow-gpu2.11.0 验证&#xff1a;# 查看tensorflow版本 import tensorflow as tf tf.__version__ # 是否能够成功启动GPU from tensorflow.python.client import device_lib pr…

Win10文件夹共享(有密码的安全共享)(SMB协议共享)

前言 局域网内&#xff08;无安全问题&#xff0c;比如自己家里wifi&#xff09;无密码访问&#xff0c;参考之前的操作视频 【电脑文件全平台共享、播放器推荐】手机、电视、平板播放硬盘中的音、视频资源 下面讲解公共网络如办公室网络、咖啡厅网络等等环境下带密码的安全…

算法---分治(归并排序)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享分治算法关于归并排序的专题 对于归并排序在我个人主页专栏 <排序> 有详细的介绍 如果有不足的或者错误的请您指出! 1.归并排序 题目: 排序数组 1.1解析 关于归并排序…

如何编写属于自己的第一个exp

0x00 前言 在我们找到一个漏洞之后&#xff0c;可能会想着去fofa上搜语法进而扩大战果&#xff0c;而有些漏洞利用起来十分繁琐&#xff0c;这时候就需要一个exp来批量帮我们进行扫描工作&#xff0c;接下来就介绍一下如何进行exp的编写&#xff0c;这个过程中最重要的还是体现…

【Pt】马灯贴图绘制过程 04-玻璃脏迹

目录 效果 步骤 一、透明玻璃 二、烟熏痕迹 三、粗糙 四、浮尘 效果 步骤 一、透明玻璃 1. 打开纹理集设置&#xff0c;着色器链接选择“新的着色器链接” 在着色器设置中可以看到此时名称为“Main shader &#xff08;Copy&#xff09;” 这里修改名称为“玻璃” 在…

设计模式总结-外观模式(门面模式)

外观模式 模式动机模式定义模式结构外观模式实例与解析实例一&#xff1a;电源总开关实例二&#xff1a;文件加密 模式动机 引入外观角色之后&#xff0c;用户只需要直接与外观角色交互&#xff0c;用户与子系统之间的复杂关系由外观角色来实现&#xff0c;从而降低了系统的耦…

基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 Vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Design Name: // …

Docker 容器编排技术解析与实践

探索了容器编排技术的核心概念、工具和高级应用&#xff0c;包括 Docker Compose、Kubernetes 等主要平台及其高级功能如网络和存储管理、监控、安全等。此外&#xff0c;文章还探讨了这些技术在实际应用中的案例&#xff0c;提供了对未来趋势的洞见。 一、容器编排介绍 容器编…

美化异常traceback信息,提升调试效率的实用工具

文章目录 Python pretty_errors库使用教程1. 安装pretty_errors库2. 环境要求3. 使用pretty_errors库4. 配置全局可用&#xff08;可选&#xff09;5. 效果对比 Python pretty_errors库使用教程 pretty_errors是一个Python库&#xff0c;用于美化异常的traceback信息&#xff…

C++运算符重载如何模拟数学表达式,或模拟Python sympy和numpy

在人工智能数学基础一书中&#xff0c;下面是一题Python求函数极限的例子&#xff1a; 【例2.6】使用Python编程求 lim( x → 1) (x^2 - 1 / x - 1) ————————————————————————————————————————— import sympy from sympy import oo…

Android Studio学习8——点击事件

在xml代码中绑定 在java代码中绑定 弹出一个toast 随机&#xff0c;数组

【蓝桥备赛】异或和——树状数组、DFS

题目链接 异或和 思路分析 树上每个点都有一个点权&#xff0c;对树上的更新操作是修改指定点的点权&#xff0c;查询操作是查询指定点为根结点的子树点权异或和。 这里的这些操作都和树状数组的单点修改和区间查询非常相似&#xff0c;即我们在修改一个点时&#xff0c;同时…

OpenCv —— cv::VideoCapture设置摄像头图像格式为“MJPEG“

背景 今天恰巧同事有台USB摄像头,她想要在Windows系统下通过OpenCV读取该摄像头宽高为1080x768、帧率为60的视频,用来做图像算法处理。但无奈通过网上OpenCV教程 读取的视频对应尺寸的帧率仅为10帧左右,根本无法满足使用要求。于是作者通过本篇文章介绍如何解决,欢迎交流指…

从0到1实现RPC | 04 负载均衡和静态注册中心

一、Router的定义 Router路由用于预筛选&#xff0c;Dubbo有这样的设计&#xff0c;SpringCloud没有。 二、LoadBanlancer定义 负载均衡器&#xff1a;默认取第一个 当前支持随机和轮询两种负载均衡器。 随机&#xff1a;从所有provider中随机选择一个。 轮询&#xff1a;每…

在 Jupyter Notebook 中轻松切换 Python 虚拟环境!

目录 1. 进入虚拟环境 2. 安装 ipykernel 3. 添加 kernel 4. 启动 Jupyter Notebook 5. 选择 kernel 1. 进入虚拟环境 进入cmd&#xff0c;输入conda activate myenv&#xff0c;myenv是虚拟环境名 2. 安装 ipykernel 确保虚拟环境中已安装了 ipykernel 包。如果没有&a…

【嵌入式硬件】三极管伏安特性曲线-饱和区

1.三极管伏安特性 三极管工作电路如下图所示。 三极管伏安特性曲线 书本上的描述: 截止区:三极管工作在截止状态,当发射结的电压Ube 小于 导通电压(0.6V-0.7V),发射结没有导通;集电结处于反向偏置,没有放大作用。 放大区:三极管的发射极加正向电压(…

Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)

目录 1、下载NVIDIA 驱动程序、cuda11.8、cudnn8.6.0 2、在Anaconda中创建环境并激活 3、下载gpu版本的torch 4、配置环境所需要的包 5、安装causal_conv1d和mamba-1p1p1 安装causal_conv1d 安装mamba-1p1p1 6、运行main.py失败 请直接拉到最后查看运行失败的原因&am…