二叉树顺序存储非递归的前序中序后序遍历的代码
时间: 2023-11-17 16:02:24 浏览: 101
```python
# 前序遍历
def preorderTraversal(root):
if not root:
return []
stack, res = [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(root):
if not root:
return []
stack, res = [], []
while stack or root:
if root:
stack.append(root)
root = root.left
else:
node = stack.pop()
res.append(node.val)
root = node.right
return res
# 后序遍历
def postorderTraversal(root):
if not root:
return []
stack, res = [root], []
while stack:
node = stack.pop()
res.append(node.val)
if node.left:
stack.append(node.left)
if node.right:
stack.append(node.right)
return res[::-1]
```
--相关问题--:
1. 二叉树的其他遍历方式有哪些?
2. 如何实现二叉树
阅读全文