刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

二叉树的深度
给定一棵二叉树,求该二叉树的深度

二叉树深度定义:从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的节点个数为树的深度
时间限制:1000
内存限制:65535
输入
第一行是一个整数n,表示二叉树的结点个数。二叉树结点编号从1到n,根结点为1,n <= 10 接下来有n行,依次对应二叉树的n个节点。 每行有两个整数,分别表示该节点的左儿子和右儿子的节点编号。如果第一个(第二个)数为-1则表示没有左(右)儿子
输出
输出一个整型数,表示树的深度
样例输入

3
2 3
-1 -1
-1 -1

样例输出

2

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】本题要求计算二叉树的深度。二叉树的深度是从根结点到最远叶结点的路径上的节点数。首先,我们定义一个函数`max_depth`,它接受两个参数:节点数`n`和父节点到子节点的映射`parent_to_children`。`parent_to_children`是一个列表,其中每个元素都是一个列表,包含父节点的编号和它的左右子节点的编号。如果某个子节点的编号为-1,表示该节点没有子节点。在`max_depth`函数中,我们首先检查节点数是否为0,如果是,则返回0,表示空树的深度为0。然后,我们递归地计算左子树和右子树的深度。如果左子节点存在,我们调用`max_depth`函数来计算左子树的深度,否则返回0。同样地,我们计算右子树的深度。最后,我们返回左子树和右子树深度的较大值加1,加1是因为我们还需要加上根节点。在主程序中,我们首先读取节点数`n`,然后读取每个节点的父节点和子节点的编号,构建`parent_to_children`列表。最后,我们调用`max_depth`函数,以1(根节点的编号)作为参数,计算二叉树的深度,并输出结果。
创作类型:
原创

本文链接:二叉树的深度 给定一棵二叉树,求该二叉树的深度 二叉树深度定义:从根结点到叶结点依次经过的结点(含根

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share