二叉树遍历的数据结构
时间: 2024-03-27 10:31:47 浏览: 73
二叉树遍历是指按照某种顺序依次访问二叉树中的所有节点。常见的二叉树遍历方式有三种:先序遍历、中序遍历和后序遍历。其中,先序遍历是指先访问根节点,然后按照左子树、右子树的顺序依次访问;中序遍历是指先访问左子树,然后访问根节点,最后访问右子树;后序遍历是指先访问左子树,然后访问右子树,最后访问根节点。
在实现二叉树遍历时,可以使用递归或栈来实现。递归实现比较简单,但是可能会导致栈溢出。栈实现则需要手动维护一个栈,将节点依次入栈和出栈,实现遍历。
以下是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: TreeNode) -> List[int]:
if not root:
return []
res = []
res.append(root.val)
res += preorderTraversal(root.left)
res += preorderTraversal(root.right)
return res
# 中序遍历
def inorderTraversal(root: TreeNode) -> List[int]:
if not root:
return []
res = []
res += inorderTraversal(root.left)
res.append(root.val)
res += inorderTraversal(root.right)
return res
# 后序遍历
def postorderTraversal(root: TreeNode) -> List[int]:
if not root:
return []
res = []
res += postorderTraversal(root.left)
res += postorderTraversal(root.right)
res.append(root.val)
return res
```
阅读全文