题目描述
输入
7 2 7 3 6 4 5 0 0 0 0 0 0 0 0
输出
4
思路:(顺序)构建二叉树+DFS
参考代码
#include<bits/stdc++.h> using namespace std; typedef struct{ int left; int right; }BNode; BNode arr[1000000+10]; int n,idx=1,cnt; void dfs(int x,int deep){ if(x==0){ return; } cnt = max(deep,cnt);//不是空节点则进行深度更新. dfs(arr[x].left,deep+1); dfs(arr[x].right,deep+1); return; } int main(){ cin>>n; for(int i = 1; i <= n; i++){ cin>>arr[i].left>>arr[i].right; } dfs(1,1); cout<<cnt<<endl; return 0; }