📜  门| GATE-CS-2006 |第 85 题(1)

📅  最后修改于: 2023-12-03 15:12:41.489000             🧑  作者: Mango

题目介绍

本题是2006年计算机科学的Gate考试的第85题,是一道关于二叉树的题目。

题目描述

二叉树的高度定义为根节点到叶子节点的最长路径上的节点数。给定一棵二叉树,计算其高度。你可以假设二叉树至少有一个节点。

输入格式

二叉树的每个节点都包含一个整数值。输入包含三行。第一行包含根节点的值,第二行包含左子树的值,第三行包含右子树的值。如果某个节点没有左子树或右子树,相应行为空。

输出格式

输出一行,表示给定二叉树的高度。

示例如下

输入:

1
2
3
4
5
 

输出:

3
解题思路

要计算一棵二叉树的高度,我们可以使用递归的方法。因为二叉树的高度等于其左子树或右子树的高度加1。因此,我们可以递归地计算左子树和右子树的高度,然后取两者中的较大值,再加1即可。其中,空节点的高度为0。

代码示例

下面给出一种可能的实现方式:

def height(root):
    if not root:
        return 0
    return max(height(root.left), height(root.right)) + 1

上述代码首先判断当前节点是否为空。如果为空,返回0。否则,分别计算左子树和右子树的高度,取其较大值加1作为当前节点的高度。最后返回根节点的高度。