帮我写一段二叉树的深度遍历代码
时间: 2023-08-06 21:14:40 浏览: 83
数据结构之二叉树的遍历
当然可以,以下是二叉树的深度遍历(先序遍历)代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
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
```
这里使用了一个栈来进行遍历,先将根节点压入栈中,然后每次弹出一个节点并将其值加入结果中。接着将其右子节点压入栈中,再将其左子节点压入栈中。因为栈的特性是先进后出,所以先压入左子节点再压入右子节点,可以保证先遍历左子树再遍历右子树。
阅读全文