已知先序遍历和中序遍历求后序遍历
时间: 2023-09-07 19:14:50 浏览: 216
可以使用树的递归遍历方法求解,我可以为您提供代码实现。以下是 Python 代码示例:
```
def build_tree(preorder, inorder):
if not preorder:
return None
root = TreeNode(preorder[0])
mid = inorder.index(preorder[0])
root.left = build_tree(preorder[1:mid+1], inorder[:mid])
root.right = build_tree(preorder[mid+1:], inorder[mid+1:])
return root
def postorder_traversal(root):
if not root:
return []
res = []
res += postorder_traversal(root.left)
res += postorder_traversal(root.right)
res.append(root.val)
return res
preorder = [3,9,20,15,7]
inorder = [9,3,15,20,7]
root = build_tree(preorder, inorder)
postorder = postorder_traversal(root)
print(postorder)
```
输出为 `[9, 15, 7, 20, 3]`,即为后序遍历结果。
阅读全文
相关推荐














