class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def insert(root, list):
if not root:
return
insert(root.left, list)
if list:
root.val = list.pop(0)
insert(root.right, list)
def levelOrder(root):
if not root:
return []
result = []
queue = [root]
while queue:
level = []
for _ in range(len(queue)):
node = queue.pop(0)
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level)
return result
if __name__ == "__main__":
n = int(input())
Tree = [TreeNode(i) for i in range(0, n)]
m = 0
for i in range(n):
flag = False
temp=[int(j) for j in input().split()]
if temp[0] != -1:
Tree[m].left=Tree[temp[0]]######
# print(Tree[m].val+" left "+Tree[temp[0]].val)
if temp[1] != -1:
Tree[m].right = Tree[temp[1]]
# print(Tree[m].val+" right "+Tree[temp[1]].val)
m+=1
root = Tree[0]
list = [int(i) for i in input().split()]
list.sort()
insert(root, list)
print(*[j for i in levelOrder(root) for j in i])
1099 Build A Binary Search Tree(python)
最新推荐文章于 2024-06-14 09:50:01 发布