洛谷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;  
}
 
相关推荐
Тиё Сиротака2 小时前
红包分配算法的严格数学理论与完整实现
算法
“αβ”3 小时前
MySQL表的操作
linux·网络·数据库·c++·网络协议·mysql·https
potato_may3 小时前
链式二叉树 —— 用指针构建的树形世界
c语言·数据结构·算法·链表·二叉树
Mz12213 小时前
day07 和为 K 的子数组
数据结构
十五年专注C++开发3 小时前
Asio2: 一个基于 Boost.Asio 封装的高性能网络编程库
网络·c++·boost·asio·asio2
gcfer3 小时前
CS144 中的C++知识积累
c++·右值引用·智能指针·optional容器
java修仙传4 小时前
每日一题,力扣560. 和为 K 的子数组
算法·leetcode
ada7_4 小时前
LeetCode(python)——148.排序链表
python·算法·leetcode·链表
点云SLAM4 小时前
点云配准算法之-Voxelized GICP(VGICP)算法
算法·机器人·gpu·slam·点云配准·vgicp算法·gicp算法
Bona Sun4 小时前
单片机手搓掌上游戏机(二十)—pico运行doom之编译环境
c语言·c++·单片机·游戏机