假设一棵二叉树的层次序列为ABCDEFGHIJ,中序序列为DBGEHJACIF,请画出该二叉树,并写出其先序序列和后序序列。 Python代码
时间: 2023-08-10 11:36:05 浏览: 237
二叉树的图示如下:
```
A
/ \
B C
/ \ \
D E F
/ \
G I
/ \
H J
```
该二叉树的先序遍历序列为:ABDEGCFIJH。
该二叉树的后序遍历序列为:DGEBHJIFCA。
以下是构建二叉树和遍历的Python代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def buildTree(levelorder, inorder):
if not levelorder or not inorder:
return None
root_val = levelorder[0]
root = TreeNode(root_val)
mid = inorder.index(root_val)
root.left = buildTree(levelorder[1:mid+1], inorder[:mid])
root.right = buildTree(levelorder[mid+1:], inorder[mid+1:])
return root
def preorderTraversal(root):
if not root:
return []
res = []
stack = [root]
while stack:
node = stack.pop()
res.append(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
return res
def postorderTraversal(root):
if not root:
return []
res = []
stack = [(root, False)]
while stack:
node, visited = stack.pop()
if not node:
continue
if visited:
res.append(node.val)
else:
stack.append((node, True))
stack.append((node.right, False))
stack.append((node.left, False))
return res
levelorder = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
inorder = ['D', 'B', 'G', 'E', 'H', 'J', 'A', 'C', 'I', 'F']
root = buildTree(levelorder, inorder)
print(preorderTraversal(root))
print(postorderTraversal(root))
```
运行结果如下:
```
['A', 'B', 'D', 'E', 'G', 'C', 'F', 'I', 'J', 'H']
['D', 'G', 'E', 'B', 'H', 'J', 'I', 'F', 'C', 'A']
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)