提交时间:2024-01-22 11:25:17
运行 ID: 122077
#include <bits/stdc++.h> using namespace std; int n,L[110],R[110]; //总结点和左右节点 int DFS(int i) { int l = 0,r = 0; if(L[i]) l = DFS(L[i]) + 1; //如果左边有,那就加上(+1是自己) if(R[i]) r = DFS(R[i]) + 1; //如果右边有,那就加上(+1是自己) return max(l,r); //返回更深层次的树 } int main() { scanf("%d",&n); for(int i = 1;i <= n;i++) scanf("%d%d",&L[i],&R[i]); printf("%d\n",DFS(1) + 1); //输出(记得加上根节点) return 0; }