python前序遍历二叉树
时间: 2024-04-29 15:17:41 浏览: 98
在Python中,可以使用递归的方式实现二叉树的前序遍历。前序遍历的顺序是先访问根节点,然后递归地访问左子树,最后递归地访问右子树。
下面是一个示例代码,实现了二叉树的前序遍历:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def preorderTraversal(root):
if root is None:
return []
result = []
result.append(root.val)
result += preorderTraversal(root.left)
result += preorderTraversal(root.right)
return result
```
在这个示例中,我们定义了一个`TreeNode`类来表示二叉树的节点。每个节点包含一个值`val`,以及左子树`left`和右子树`right`。
`preorderTraversal`函数接受一个二叉树的根节点作为参数,并返回一个列表,表示前序遍历的结果。首先判断根节点是否为空,如果为空则返回空列表。然后将根节点的值加入结果列表中,然后递归地对左子树和右子树进行前序遍历,并将结果合并到结果列表中。
使用示例:
```python
# 构造二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
# 前序遍历二叉树
result = preorderTraversal(root)
print(result) # 输出: [1, 2, 4, 5, 3]
```
阅读全文