提交时间:2024-01-22 08:01:01

运行 ID: 121599

#include <bits/stdc++.h> using namespace std; int n,Deep; struct node { int left,right; } Tree[110]; void dfs(int i,int d)//i表示节点名,d表示当前深度 { if(i==0)//到达叶子节点时返回 return; Deep=max(Deep,d);//更新最深深度 dfs(Tree[i].left,d+1);//向左儿子遍历,当前深度+1 dfs(Tree[i].right,d+1);//向右儿子遍历,当前深度+1 } int main() { cin>>n; for(int i=1; i<=n; i++) cin>>Tree[i].left>>Tree[i].right; dfs(1,1);//从第一层的根节点开始遍历 cout<<Deep; return 0; }