多叉树的遍历算法python
时间: 2023-05-17 10:01:20 浏览: 129
多叉树是一种树形结构,每个节点可以有多个子节点。在进行多叉树的遍历时,需要使用特定的算法来确保覆盖每个节点,遍历算法也是Python编程中重要的一部分。
多叉树的遍历算法有三种:前序遍历、中序遍历和后序遍历。前序遍历从根节点开始,按照“根->左->右”的顺序遍历节点;中序遍历从根节点开始,按照“左->根->右”的顺序遍历节点;后序遍历从根节点开始,按照“左->右->根”的顺序遍历节点。
在Python中,可以使用递归的方式实现多叉树的遍历算法。以前序遍历为例,代码如下:
```python
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
class Solution:
def preorder(self, root: 'Node') -> List[int]:
if not root:
return []
res = [root.val]
for child in root.children:
res += self.preorder(child)
return res
```
在这段代码中,首先定义了一个Node类,代表多叉树中的每个节点,包括节点值和子节点。然后定义了一个Solution类,其中preorder方法实现了前序遍历。如果根节点为空,返回空列表;否则,先把根节点值加入结果列表中,然后遍历子节点,递归地调用preorder方法,把子节点的值加入结果列表中。最后返回结果列表。
这段代码同样可以适用于中序遍历和后序遍历,只需要改变遍历子节点的顺序即可。
阅读全文