python用列表构建树
时间: 2023-07-12 13:38:25 浏览: 54
Python中可以使用列表构建树结构,具体的实现方法如下:
1. 定义一个树节点类,包含节点值和子节点列表:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.children = []
```
2. 构建树的方法,通过遍历列表,将其中的元素作为节点值构建树结构:
```python
def build_tree(data):
if not data:
return None
root = TreeNode(data[0])
stack = [root]
for val in data[1:]:
if val == None:
stack.pop()
else:
node = TreeNode(val)
stack[-1].children.append(node)
stack.append(node)
return root
```
其中,使用栈来辅助构建树结构,如果遇到 None 值,则将栈顶元素弹出,表示该节点已经构建完毕。
例如,给定以下列表构建树:
```python
data = [1, 2, 5, None, None, 6, None, 7, None, None, 3, None, 4, None, None]
```
则可以通过调用 build_tree(data) 方法构建出如下的树结构:
```
1
/ | \
2 3 4
/ \
5 6
/
7
```
注意,这种方法只适用于构建多叉树,如果是二叉树,则需要使用其他方法构建。