python求二叉树的高度
时间: 2023-12-20 22:52:35 浏览: 69
可以使用递归的方法求解二叉树的高度:
```
class Node:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
def height(root):
if root is None:
return 0
else:
left_height = height(root.left)
right_height = height(root.right)
return max(left_height, right_height) + 1
# Example usage:
# tree = Node(1, Node(2, Node(4), Node(5)), Node(3, Node(6), Node(7)))
# print(height(tree)) # Output: 3
```
以上是一个基本的示例代码,其中 `height` 是求解二叉树高度的函数。我们可以通过递归来实现,每次调用 `height` 函数时,先判断当前节点是否为空,如果为空直接返回 0,否则分别递归地求出左子树和右子树的高度,最后返回两者的较大值再加 1,即可得到当前节点所在子树的高度。
相关问题
python求二叉树高度算法,并在主函数中补充相应的调用验证正确性
您好,关于您提出的问题,以下是Python求二叉树高度算法的示例代码:
```python
# 定义二叉树节点类
class Node:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 递归求解二叉树高度
def get_tree_height(root):
if not root:
return 0
return max(get_tree_height(root.left), get_tree_height(root.right)) + 1
# 主函数中的调用及测试
if __name__ == '__main__':
# 构造一个二叉树
root = Node(1, Node(2, Node(4), Node(5)), Node(3, Node(6), Node(7)))
# 计算二叉树高度
height = get_tree_height(root)
print("二叉树高度为:", height)
```
通过以上代码,我们可以很容易地计算出给定二叉树的高度,并且可以在主函数中进行验证调用。
用Python求二叉树的高度
要求一棵二叉树的高度,可以采用递归的方式来实现。二叉树的高度等于根节点的高度,根节点的高度等于左右子树高度的最大值加1。
下面是一个递归求解二叉树高度的示例代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def height(root):
if root is None:
return 0
else:
left_height = height(root.left)
right_height = height(root.right)
return max(left_height, right_height) + 1
# 示例
# 1
# / \
# 2 3
# / \
# 4 5
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
print(height(root)) # 输出 3
```
在上面的示例中,我们定义了一个 `height` 函数,接受一个二叉树的根节点作为参数,返回二叉树的高度。在函数内部,我们首先判断根节点是否为空,如果为空,则返回 0。否则,我们分别递归求解左右子树的高度,并返回左右子树高度的最大值加1。最后,我们创建了一个二叉树并调用 `height` 函数来求解其高度,输出结果为 3。
阅读全文