📅  最后修改于: 2023-12-03 14:54:49.312000             🧑  作者: Mango
本题是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
本题是一道比较基础的树算法问题,需要应聘的程序员对递归算法有一定的了解,并且对树的基本概念和操作有一定的掌握。通过本题的实现,能够提高我们对树数据结构和算法设计的认识。