2025.2.5总结

题目描述

有一个 𝑛(𝑛≤106)n(n≤106) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 𝑛n),建立一棵二叉树(根节点的编号为 11),如果是叶子结点,则输入 0 0

建好这棵二叉树之后,请求出它的深度。二叉树的深度是指从根节点到叶子结点时,最多经过了几层。

输入格式

第一行一个整数 𝑛n,表示结点数。

之后 𝑛n 行,第 𝑖i 行两个整数 𝑙l、𝑟r,分别表示结点 𝑖i 的左右子结点编号。若 𝑙=0l=0 则表示无左子结点,𝑟=0r=0 同理。

输出格式

一个整数,表示最大结点深度。

输入输出样例

输入 #1复制

复制代码
7
2 7
3 6
4 5
0 0
0 0
0 0
0 0

输出 #1复制

复制代码
4

代码:

复制代码
#include <stdio.h>

int n;
int left[1000001], right[1000001], depth[1000001];

void cal_depth(int node, int d)
{
    if (node == 0) 
	return;
    depth[node] = d;
    cal_depth(left[node],d + 1);
    cal_depth(right[node],d + 1);
}

int main() 
{
    scanf("%d",&n);
    for(int i = 1; i <= n;++i)
	{
        scanf("%d %d",&left[i], &right[i]);
    }
    cal_depth(1,1);
    int max = 0;
    for(int i = 1; i <= n; ++i)
        if(depth[i] > max) 
		max = depth[i];
    printf("%d\n",max);
    return 0;
}
相关推荐
良木林2 分钟前
子串 - LeetCode hot 100
算法·leetcode·职场和发展
陌诺曦.41 分钟前
Python扩展小练习
算法
coder!mq2 小时前
说几个常见的语法糖?
java·开发语言·算法
LuminousCPP2 小时前
数据结构-双向循环链表
c语言·数据结构·笔记·链表
不爱学英文的码字机器2 小时前
推荐算法梳理,六种主流模型与九步训练流程
算法·机器学习·推荐算法
白狐_7983 小时前
408数据结构第5章:树与二叉树②——遍历、线索树、森林与哈夫曼
数据结构·算法·深度优先
Jasmine_llq5 小时前
《P15800 [GESP202603 六级] 选数》
数据结构·long long·逆序线性 dp·从后往前推导·转移严格遵循题意·防止总和溢出·复杂度on
疯狂打码的少年5 小时前
【数据结构】串(字符串):基本概念与存储
数据结构·笔记
致Great6 小时前
科研人的 AI,不该只回答问题:我用字节TraeWork 跑了一遍真实研究任务
算法