先序遍历二叉树
时间: 2023-06-28 12:05:52 浏览: 110
先序遍历二叉树是指先遍历根节点,然后遍历左子树,最后遍历右子树。具体操作步骤如下:
1. 访问根节点
2. 先序遍历左子树
3. 先序遍历右子树
可以用递归或者栈来实现先序遍历。下面是一个使用递归的示例代码(假设二叉树的节点结构为TreeNode):
```python
def pre_order_traversal(root):
if not root:
return
print(root.val) # 访问根节点
pre_order_traversal(root.left) # 先序遍历左子树
pre_order_traversal(root.right) # 先序遍历右子树
```
如果使用栈来实现,可以按照以下步骤:
1. 将根节点入栈
2. 循环执行以下步骤直到栈为空:
1. 弹出栈顶元素并访问
2. 如果栈顶元素有右子树,将右子树入栈
3. 如果栈顶元素有左子树,将左子树入栈
下面是示例代码:
```python
def pre_order_traversal(root):
if not root:
return
stack = [root]
while stack:
node = stack.pop()
print(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
```
以上是先序遍历二叉树的两种实现方式。
阅读全文