用Python解决
时间: 2023-11-16 13:14:07 浏览: 8
好的,我用Python重新写一遍代码,供你参考。
```python
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def build_tree(inorder, postorder):
if not inorder:
return None
root_val = postorder.pop()
root = TreeNode(root_val)
root_idx = inorder.index(root_val)
root.right = build_tree(inorder[root_idx+1:], postorder)
root.left = build_tree(inorder[:root_idx], postorder)
return root
def preorder_traversal(root):
if not root:
return []
res = [root.val]
res += preorder_traversal(root.left)
res += preorder_traversal(root.right)
return res
inorder = [9, 3, 15, 20, 7]
postorder = [9, 15, 7, 20, 3]
root = build_tree(inorder, postorder)
print(preorder_traversal(root)) # [3, 9, 20, 15, 7]
```
希望这次的回答对你有所帮助!