请用代码介绍二叉树遍历所有的函数
时间: 2024-05-08 10:19:45 浏览: 18
好的,这里提供二叉树的三种遍历方式的代码:
```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 = []
if not root:
return res
stack = [root]
while stack:
node = stack.pop()
res.append(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
return res
def inorderTraversal(self, root: TreeNode) -> List[int]:
res = []
stack = []
cur = root
while stack or cur:
while cur:
stack.append(cur)
cur = cur.left
node = stack.pop()
res.append(node.val)
cur = node.right
return res
def postorderTraversal(self, root: TreeNode) -> List[int]:
res = []
if not root:
return res
stack1 = [root]
stack2 = []
while stack1:
node = stack1.pop()
stack2.append(node)
if node.left:
stack1.append(node.left)
if node.right:
stack1.append(node.right)
while stack2:
res.append(stack2.pop().val)
return res
```
以上是 Python 中对应的实现,提供了前序(preorder)、中序(inorder)和后序(postorder)三种遍历方式的函数。如果您需要其他语言的实现方式可以告诉我,我会尽力提供帮助。