创建一个二叉树并实现二叉树的层序遍历
时间: 2023-11-05 19:58:48 浏览: 24
建立二叉树,层序、中序遍历
好的,我理解了你的要求。关于创建二叉树的问题,您需要给出二叉树的结构以及节点信息,我可以为您提供相应的代码实现。以下是一份基于Python的二叉树创建以及层序遍历的代码示例,供您参考:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class BinaryTree:
def __init__(self):
self.root = None
# 创建二叉树
def createBinaryTree(self, nodes):
if not nodes:
return None
self.root = TreeNode(nodes[0])
queue = [self.root] # 队列,用于存储节点
index = 1
while queue and index < len(nodes):
node = queue.pop(0) # 弹出队首节点
left = nodes[index] if nodes[index] else None
right = nodes[index+1] if index+1 < len(nodes) and nodes[index+1] else None
node.left = TreeNode(left)
node.right = TreeNode(right)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
index += 2
# 层序遍历
def levelOrder(self):
if not self.root:
return []
result = []
queue = [self.root]
while queue:
cur_level = []
for _ in range(len(queue)):
node = queue.pop(0)
cur_level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(cur_level)
return result
# 示例代码
bt = BinaryTree()
bt.createBinaryTree([3,9,20,None,None,15,7])
print(bt.levelOrder()) # 输出 [[3], [9, 20], [15, 7]]
```
希望这份代码对您有所帮助。如果您还有什么问题或需要进一步帮助,请随时提出,我会尽力为您解答。
阅读全文