用python写一个快速生成树代码
```python
# 定义一个节点类
class Node:
def __init__(self, data):
self.data = data # 节点的数据域
self.left = None # 左子节点的引用域
self.right = None # 右子节点的引用域
# 构造二叉树,使用列表来表示树中各个节点之间的关系,0表示该位是叶子节点,-1表示该位没有孩子。例如[-1, 0, 0]代表一颗包含一个根节点和两个叶子节点的二叉树。
def createTree(tree_list): # tree_list 是列表形式的二叉树信息
if tree_list[0] == -1: # 若root是-1(即无孩子)则返回None
return None
root = Node(tree_list[0]) # 构造root
nodeQueue = [root] # 由于要逐层遍历,所以使用队列来保存当前处理过的元 素
index = 1 # index用来控制nodeQueue中元 素出队时对应tree_list中元 素出队
front = 0 # front 控制nodeQueue中出队元 素在tree_list中对应位 置
while index < len(tree_list):
node = nodeQueue[front]
front += 1
item = tree_list[index]
index += 1
if item != -1: # 若item不为-1 (即有孩子) # 首先将item封装成Node实例 newNode=Node(item) nodeQueue.append(newNode) if node.left is None: node.left=newNode else: node.right=newNode else : continue return root ```
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!