zoukankan      html  css  js  c++  java
  • P4913 【深基16.例3】二叉树深度(水题)

    题目描述

    给出每个节点的两个儿子节点,建立一棵二叉树(根节点为 111),如果是叶子节点,则输入0 0。建好树后希望知道这棵二叉树的深度。二叉树的深度是指从根节点到叶子结点时,最多经过了几层。

    最多有 10610^6106 个结点。

    输入格式

    输出格式

    输入输出样例

    输入 #1
    7
    2 7
    3 6
    4 5
    0 0
    0 0
    0 0
    0 0
    输出 #1
    4
    这么水的题本来不想写博客来着,后来还是打算写一下提醒自己时刻记着题目里的坑。
    叶子节点可能是独生子女!
    #include <bits/stdc++.h>
    using namespace std;
    int n,ans=0;
    struct node
    {
        int num;
        int l;
        int r;
    }tree[1000005];
    void dfs(int k,int layer)
    {
        if(tree[k].l==0&&tree[k].r==0)
        {
            ans=max(ans,layer);
            return;
        }
        if(tree[k].l)dfs(tree[k].l,layer+1);
        if(tree[k].r)dfs(tree[k].r,layer+1);
    }
    int main()
    {
        cin>>n;
        int i;
        for(i=1;i<=n;i++)
        {
            int x,y;
            scanf("%d%d",&x,&y);
            tree[i].num=i;
            tree[i].l=x,tree[i].r=y;
        }
        dfs(1,1);
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    JavaScript 作用域链与闭包
    JavaScript获取DOM节点
    memcache安装与简单介绍
    抽象工厂模式
    工厂模式
    适配器模式
    策略模式
    观察者模式
    责任链模式
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/12706273.html
Copyright © 2011-2022 走看看