题目描述:给定一个二叉树,返回它的 前序 遍历。
示例:
输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?
解法1。用循环的方法,但和BFS似乎有些不一样,这是一种DFS?用的是栈而非队列,不能用队列,有些测试用例会报错
class Solution(object):
def preorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if not root:
return []
res = []
q = [root]
while q:
node = q.pop()
if node:
res.append(node.val)
q.append(node.right)
q.append(node.left)
return res