📌  相关文章
📜  教资会网络 | UGC NET CS 2015 年 6 月 – III |问题 42(1)

📅  最后修改于: 2023-12-03 14:54:49.312000             🧑  作者: Mango

UGC NET CS 2015年6月-III题库: 问题42

本题是2015年6月-III期的UGC NET CS题库中的 问题42。它是一道关于树数据结构的算法问题,需要应聘的程序员有一定的树数据结构知识和算法设计能力。

问题描述

给定一颗二叉树,你需要写一个程序来查找它的最大深度。

输入格式

输入树节点的个数和每个节点的值。

输出格式

返回给定二叉树的最大深度。

样例输入
5
3 4 5 2 1
1 2 3 -1 -1 -1 4 -1 -1
样例输出
3
解题思路

本题的最大深度是由树的根节点到叶子节点的最长路径确定的,因此我们可以使用递归算法来计算树的最大深度。我们从根节点开始递归,每次递归都计算左子树和右子树的深度,并返回较大值加1,作为当前子树的深度。计算完成后,递归返回到上一层的节点,继续计算最大深度。

代码实现

下面是使用 Python 语言实现的代码解答。它使用了递归算法来计算树的最大深度。

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
        
def maxDepth(root: TreeNode) -> int:
    if root is None:
        return 0
    left_depth = maxDepth(root.left)
    right_depth = maxDepth(root.right)
    return max(left_depth,right_depth) + 1
总结

本题是一道比较基础的树算法问题,需要应聘的程序员对递归算法有一定的了解,并且对树的基本概念和操作有一定的掌握。通过本题的实现,能够提高我们对树数据结构和算法设计的认识。