二叉树遍历Python
时间: 2023-11-19 08:54:15 浏览: 94
遍历二叉树
二叉树遍历是指按照一定的顺序遍历二叉树中的所有节点。常见的遍历方式有三种:前序遍历、中序遍历和后序遍历。其中,前序遍历是先访问根节点,然后访问左子树,最后访问右子树;中序遍历是先访问左子树,然后访问根节点,最后访问右子树;后序遍历是先访问左子树,然后访问右子树,最后访问根节点。
在Python中,可以通过递归或者栈来实现二叉树的遍历。下面是一个示例代码,实现了前序遍历、中序遍历和后序遍历:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def preorderTraversal(self, root: TreeNode) -> List[int]:
res = []
def dfs(node):
if not node:
return
res.append(node.val)
dfs(node.left)
dfs(node.right)
dfs(root)
return res
def inorderTraversal(self, root: TreeNode) -> List[int]:
res = []
def dfs(node):
if not node:
return
dfs(node.left)
res.append(node.val)
dfs(node.right)
dfs(root)
return res
def postorderTraversal(self, root: TreeNode) -> List[int]:
res = []
def dfs(node):
if not node:
return
dfs(node.left)
dfs(node.right)
res.append(node.val)
dfs(root)
return res
```
阅读全文