洛谷P4913 【深基16.例3】二叉树深度(c嘎嘎)

题目链接P4913 【深基16.例3】二叉树深度 - 洛谷 | 计算机科学教育新生态

题目难度 :普及

解题思路:本题要求树的深度,即求左右子树高度的最大值,首先我们用结构体存树左右节点,然后分别递归地去左右子树的深度。

下面奉上代码部分:

cpp 复制代码
#include<bits/stdc++.h>  // 万能头文件
using namespace std;
typedef long long ll;
const int N = 1e6 + 10;      
int n;
int ans;
 
struct node
{
	int left,right;
	
}tree[N];

void dfs(int id,int deep)
{
	if(id == 0) return;//到达叶子节点
	ans = max(ans,deep);
	dfs(tree[id].left,deep + 1);//递归求左子树的深度 
	dfs(tree[id].right,deep + 1);//递归求右子树的深度 
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    
    cin >> n;
    for(int i=1; i<=n; i++)   cin >> tree[i].left >> tree[i].right;
    
    dfs(1,1);
    
    cout << ans << '\n';
    	

  
    return 0;  
}
 
相关推荐
CoderYanger15 小时前
递归、搜索与回溯-综合练习:28.不同路径Ⅲ
java·算法·leetcode·深度优先·1024程序员节
可峰科技15 小时前
Apriltag_ros CMakeList.txt一句话导致其他包编译失败
c++
code bean15 小时前
【C++ 】C++ 与 C#:using 关键字、命名空间及作用域解析符对比
开发语言·c++·c#
我发在否15 小时前
Rust > 牛客OJ在线编程常见输入输出练习场
算法·rust
CAE虚拟与现实15 小时前
C# 调用 DLL为什么不像 C/C++调用 DLL 时需要lib库
开发语言·c++·c#·动态链接库·dll库·lib库
忆湫淮15 小时前
ENVI 5.6 利用现场标准校准板计算地表反射率具体步骤
大数据·人工智能·算法
Larry_Yanan15 小时前
Qt线程使用(一)直接继承QThread类
开发语言·c++·qt·ui
Ayanami_Reii15 小时前
基础数据结构应用-一个简单的整数问题
数据结构·算法·树状数组·fenwick tree
Yu_Lijing15 小时前
【个人项目】C++基于websocket的多用户网页五子棋(上)
开发语言·c++·websocket
Ayanami_Reii15 小时前
进阶数据结构应用-一个简单的整数问题2(Fenwick-Tree 解法)
数据结构·算法·前缀和·差分·树状数组·fenwick tree