zoukankan      html  css  js  c++  java
  • 九度OJ 1350:二叉树的深度 (二叉树)

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:1044

    解决:614

    题目描述:

    输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

    输入:

    第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n <= 10。

    接下来有n行,每行有两个个整型a和b,表示第i个节点的左右孩子孩子。a为左孩子,b为右孩子。当a为-1时,没有左孩子。当b为-1时,没有右孩子。

    输出:

    输出一个整型,表示树的深度。

    样例输入:
    32 3-1 -1-1 -1
    样例输出:
    2

    思路:

    根据二叉树的定义,递归查找更新。


    代码:

    #include <stdio.h>
     
    #define N 10
     
    int left[N+1], right[N+1];
     
    int func(int i)
    {
        if (left[i] == -1 && right[i] == -1)
            return 0;
        int dleft = (left[i] == -1) ? 0 : func(left[i]);
        int dright = (right[i] == -1) ? 0 : func(right[i]);
        return dleft > dright ? dleft+1 : dright+1;
    }
     
    int main(void)
    {
        int n, i;
     
        while (scanf("%d", &n) != EOF)
        {
            for(i=1; i<=n; i++)
                scanf("%d%d", &left[i], &right[i]);
     
            printf("%d
    ", func(1)+1);
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1350
        User: liangrx06
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:912 kb
    ****************************************************************/


  • 相关阅读:
    Linux下查看tomcat版本
    React跳转路由传参3种方法和区别
    pc端布局方案
    vue针对搜索引擎做SEO优化
    vue-cli3配置vue.config.js持续更新
    MySQL连接语法(多表查询)
    MySQL约束和外键约束
    MySQL数据库查询
    MySQL数据库入门
    jQuery用法和bootstrap框架
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083783.html
Copyright © 2011-2022 走看看