Java教程

【数据结构1-2】二叉树 P4913 【深基16.例3】二叉树深度

本文主要是介绍【数据结构1-2】二叉树 P4913 【深基16.例3】二叉树深度,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题解

题目中给的是输入是按照前序的,如果能看出来这个应该比较好做。

AC代码

#include<bits/stdc++.h>
using namespace std;

struct Node{
    int l,r;
}tree[int(1e6+10)];

int ans=0;

void dfs(int now,int h){
    if(tree[now].l==0 && tree[now].r==0){ans=max(ans,h);return;}
    dfs(tree[now].l,h+1);
    dfs(tree[now].r,h+1);
}

int main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>tree[i].l>>tree[i].r;
    }
    dfs(1,1);
    cout<<ans<<endl;
    return 0;
}
这篇关于【数据结构1-2】二叉树 P4913 【深基16.例3】二叉树深度的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!