P4913【심기16.예3】두 갈래 나무 깊이

5093 단어
제목은 각 노드의 두 아들 노드를 설명하고 두 갈래 나무(뿌리 노드는 11)를 세우며 잎 노드라면 0 을 입력한다.나무를 세운 후 이 두 갈래 나무의 깊이를 알고 싶다.두 갈래 나무의 깊이는 뿌리 노드에서 잎사귀 결점까지 최대 몇 층을 지나는 것을 가리킨다.
최대 10^610 6개의 결점이 있다.
입력 형식 없음
출력 형식 없음
출력 샘플 입력 #1 복사 72 7 3 6 4 50 0 0 출력 #1 복사 4
#include 

using namespace std;
 
const int MAXN = 10e6 + 10;

int n, ans = 1;

struct node{
     
    int left, right;
};

node tree[MAXN];

void dfs(int id, int deep){
     
    if(id == 0)
        return;
    
    ans = max(deep, ans);

    dfs(tree[id].left, deep + 1);
    dfs(tree[id].right, deep + 1);
}

int main()
{
     
    cin >> n;

    for(int i = 1; i <= n; i++)
        cin >> tree[i].left >> tree[i].right;
    
    dfs(1, 1);

    cout << ans;

    system("pause");

    return 0;
}

좋은 웹페이지 즐겨찾기