题目选自洛谷P4913

题目描述

给出每个节点的两个儿子节点,建立一棵二叉树(根节点为 1),如果是叶子节点,则输入0 0。建好树后希望知道这棵二叉树的深度。二叉树的深度是指从根节点到叶子结点时,最多经过了几层。

最多有 10^6 个结点。

输入格式

输出格式

输入输出样例

输入 1

7
2 7
3 6
4 5
0 0
0 0
0 0
0 0

输出 1

4

解题代码: 

#include<stdio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
struct node{
	int left,right;
};
node tree[1000005];
int n;
void build(){
	for(int i=1;i<=n;i++){
		cin>>tree[i].left>>tree[i].right;
	}
}
int dfs(int x){
	if(!x) return 0;
	return max(dfs(tree[x].left),dfs(tree[x].right))+1;
}
int main(){
	cin>>n;
	build();
	cout<< dfs(1);
	return 0;
}

 

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐