给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
时间: 2024-01-05 10:41:36 浏览: 63
前序遍历中序遍历生成二叉树并查找节点
二叉树前序遍历的顺序是:根节点 -> 左子树 -> 右子树。可以通过递归或者迭代来实现。
以下是递归实现:
```python
class Solution:
def preorderTraversal(self, root: TreeNode) -> List[int]:
res = []
self.helper(root, res)
return res
def helper(self, node, res):
if not node:
return
res.append(node.val)
self.helper(node.left, res)
self.helper(node.right, res)
```
以下是迭代实现:
```python
class Solution:
def preorderTraversal(self, root: TreeNode) -> List[int]:
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
```
其中,迭代实现使用了一个栈,按照根节点 -> 右子树 -> 左子树的顺序将节点加入栈中,然后出栈时再加入结果列表中。
阅读全文