二叉树最大深度

win11本地部署openclaw实操第1集 OpenClaw 是一款开源、本地优先、可自托管的 AI 智能体(AI Agent)网关 / 自动化框架,核心是让 AI 从 “只聊天、给建议” 变成 “能在你电脑上真做事” 的数字助手。 阅读详情

在线刷题 (educoder.net)

正常来讲,这个是学过的,应该不难;

但是,我是小白,看着就很难……

首先,树的结构体是怎么写的?

报错,很正常

 都有文章啊

目前长这样,至少不报错了

#include<iostream>
using namespace std;
#include<string>

typedef struct BitNode{
	char data;
	BitNode* lchild,*rchild;
}BitNode,*BiTree;

BiTree CreateBiTree(string input,int& pos){
	//递归返回条件 
	if(input[pos]=='#'){
		return NULL;
	}
	//先序
	BiTree root=new BitNode;
	root->data=input[pos];
	++pos;
	root->lchild=CreateBiTree(input,pos);
	++pos;
	root->rchild=CreateBiTree(input,pos); 
}

void output(BiTree root){
	if(root==NULL){
		cout<<"#";
		return;
	}
	cout<<root->data;
	output(root->lchild);
	output(root->rchild);
}

int main(){
	string input;
	cin>>input;
	int pos=0;
	BiTree root=CreateBiTree(input,pos);
	output(root);
	return 0;
}

 莫得输出,可能是少了个return?

正常了

后面的,怎么写啊?

这俩有什么区别么?

 是这个关系?

引用自:(82条消息) 二叉树遍历(前序、中序、后序、层次遍历、深度优先、广度优先)_Yadoer的博客-优快云博客_二叉树遍历

 宽搜,是不是只能借助队列来实现,不能递归?

是不是只有深搜有递归非递归之分?

是的

代码: 

#include<iostream>
using namespace std;
#include<string>

int currentDepth=0; 
int maxDepth=0;

typedef struct BitNode{
	char data;
	BitNode* lchild,*rchild;
}BitNode,*BiTree;

BiTree CreateBiTree(string input,int& pos){
	//递归返回条件 
	if(input[pos]=='#'){
		return NULL;
	}
	//先序
	BiTree root=new BitNode;
	root->data=input[pos];
	++pos;
	root->lchild=CreateBiTree(input,pos);
	++pos;
	root->rchild=CreateBiTree(input,pos); 
	
	return root;
}
//先序遍历 
void output(BiTree root){
	if(root==NULL){
		cout<<"#";
		return;
	}
	cout<<root->data;
	output(root->lchild);
	output(root->rchild);
}
//深搜 
void DFS(BiTree root){
	if(root==NULL){
		return;
	}
	currentDepth++;
	if(currentDepth>maxDepth){
		maxDepth=currentDepth;
	}
	DFS(root->lchild);
	DFS(root->rchild);
	currentDepth--;
	
}

int main(){
	string input;
	cin>>input;
	int pos=0;
	BiTree root=CreateBiTree(input,pos);
	//测试树对不对 
//	output(root);
//	cout<<endl;
	DFS(root);
	cout<<maxDepth<<endl;
	return 0;
}

结果上是过了……

 然后发现,书上是有深度计算的

这个才是正宗的递归,你那写的,都是些什么垃圾……

小白嘛,很正常……但是一直都是小白,就不正常了……

//深搜 
void DFS(BiTree root){
	if(root==NULL){
		return;
	}
	currentDepth++;
	if(currentDepth>maxDepth){
		maxDepth=currentDepth;
	}
	DFS(root->lchild);
	DFS(root->rchild);
	currentDepth--;
	
}

int getDepth(BiTree root){
	if(root==NULL){
		return 0;
	}
	int leftDepth=getDepth(root->lchild);
	int rightDepth=getDepth(root->rchild);
	if(leftDepth>rightDepth){
		return leftDepth+1;
	}else{
		return rightDepth+1;
	}
}

UE5Could not be compiled. Try rebuilding from source manually. 阅读详情

相关推荐

qemu-system-aarch64参数详解与实战配置指南

本文详细解析了qemu-system-aarch64的核心参数,包括-machine、cpu、smp、m、drive和netdev等关键配置。通过嵌入式内核调试、完整系统运行和外设模拟三大实战场景,提供可直接使用的配置示例与性能优化技巧,帮助开发者在x86主机上高效构建和调试ARM64虚拟环境。

weixin_29197051的博客 352

二叉树的最大深度

104. 二叉树的最大深度 难度简单622收藏分享切换为英文关注反馈 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 /** \* Definition for a binary tree node. \* public class Tree

开心就好 6348

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 478

[二叉树专题]力扣104二叉树的最大深度

题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 思路 题目中给出二叉树的根节点,要求二叉树的最大深度,很显然,二叉树只有左右两个方向,每一层代表深度加1,左右方向延伸的最大层数,就是二叉树的最大深度 那如何找到左右方向的最大深度呢,我们肯定需要取

程序员云锦的博客 1220

Xilinx SDK调试与FPGA硬件验证全流程解析

本文详细解析了从Vivado导出硬件到Xilinx SDK进行调试与FPGA硬件验证的全流程。重点阐述了正确导出包含bitstream的硬件平台、创建合适的SDK工程、配置Debug会话以编程FPGA,并介绍了串口验证、自定义IP测试以及使用ILA进行软硬件联合调试的高级技巧,帮助开发者高效完成FPGA系统的软硬件协同开发与问题排查。

weixin_28327051的博客 310

1104全部报表版本号-银监会报表

G4B_Ⅲ(a)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第一档)》G4B_Ⅲ(b)X1《与非中央交易对手的证券融资交易对手信用风险违约风险计算表(权重法)(第一档)》G4B_Ⅲ(a1)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第二档)》Ⅲ(a)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第二档)》Ⅲ(a1)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第一档)》

数字化老司机 6289

LeetCode【0104】二叉树的最大深度

题目难度:简单;数据结构:二叉树;应用算法:深度优先搜索

AnFany 1216

STM32驱动HC-SR04超声波模块:两种精准测距方案详解

本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。

g5h6i的博客 683

算法小练——二叉树的最大深度

title: 算法小练——二叉树的最大深度 date: 2019-11-19 18:04:20 categories: Algorithms tags: easy 二叉树的最大深度 描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例 给定二叉树 [3,9,20,null,null,15,7], ...

李亚飞的博客 2883

l0phtcrack 7(爆破管理员密码)使用教程

l0phtcrack7简称lc7,是爆破计算机管理员密码的软件,早期是网络安全管理员用来检测系统用户是否使用了不安全的密码,后被黑客用于用户口令破解 功能:该工具支持远程破解,理论上能破解所有密码,但对复杂度比较高的密码,破解时间很长 使用前提:1.登录了需要破解的计算机 2.知道需要破解的计算机的一个管理员的账户,密码 ** 也许你会疑惑,我都知道了一个管理员账户密码了,还要另外的管理员密码...

Xiongcanne的博客 2万+

控制科学与工程(自动化)保研经验【1】——预备篇

个人情况 学校:中末流211 专业:自动化(学科评估B-) 年份:2019 排名:4/128 绩点:4.16/5 竞赛:三个国二(包括数模国赛美赛)、两个省一(机器人、电子设计竞赛) 【本科期间竞赛做的比较多,是我的一大亮点,可以在筛简历这关适当弥补专业排名的不足】 科研:一个校级的大创项目(水) 夏令营报名:中科大科学岛、中科大本部、自动化所、沈自所、北航(仪器17系)、山大、浙江大学、南开、同...

Control Everything 1万+

二叉树的最大深度java

二叉树的最大深度(力扣) 题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 maid返回它的最大深度 3 。 代码 使用的是递归方法 /** * Definition for a binary ...

qq_39167028的博客 413

新手必看:C#调用YOLO模型完成图片/视频目标检测(上位机版)

新手学习C#调用YOLO模型,核心是先把基础流程跑通,再逐步优化。图片检测是基础,视频检测就是在图片的基础上加循环和线程,而上位机的实际项目,就是在这个基础上适配工业硬件和业务需求。本文的代码都是新手能直接复制运行的,如果你运行时遇到问题,先检查前期准备是否到位,再看避坑指南。记住,新手别追求一步到位,先实现功能,再慢慢优化性能和界面。等你能熟练调用YOLO模型后,再去研究模型训练、量化优化等进阶内容,会轻松很多。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 987

求二叉树的最大深度

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 借助递归把问题拆分 1+左子树的最大深度+右子树的最大深度 的最大值 1.空树,深度为0 2.只有一个根节点,没有左右子树,深度1 3.1 + max(左子树的深度+右子树的深度) /** * Definition for a binary tree node. * public class Tree...

question_mark的博客 522

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

104. 二叉树的最大深度

描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 思路 1.使用DFS遍历二叉树,使用变量tmpMax记录当前最大深度。 2.每次加深一层则i++,并更新tmpMax的值;每返回一层则i–,这样i将会逐层递增,最终再回到0,tmpMax为最深的层数。 解答 /** * Definition for a binary tree node. * struct TreeNode { * int val;

mbytes的博客 216

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 字符串的模式匹配
下一篇: 最小素数拆分
averagePerson
博客等级 码龄5年 381粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值