给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。给出思路与代码
时间: 2023-03-14 15:15:27 浏览: 343
建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数
4星 · 用户满意度95%
对于给定的二叉树,首先要根据先序遍历序列和中序遍历序列来构建二叉树。然后,可以使用递归的方法来计算二叉树的高度,具体思路如下:1. 如果当前结点没有子结点,则高度为 0;
2. 如果当前结点只有一个子结点,则高度为其子结点的高度 + 1;
3. 如果当前结点有两个子结点,则高度为其子结点最大高度 + 1;以下是使用 Python 语言编写的代码:```
def tree_height(pre_order, in_order):
if len(pre_order) == 0:
return 0
root = pre_order[0]
root_index = in_order.index(root)
left_height = tree_height(pre_order[1:root_index+1], in_order[:root_index])
right_height = tree_height(pre_order[root_index+1:], in_order[root_index+1:])
return max(left_height, right_height) + 1
```
阅读全文