【LeetCode 中等题】67-二叉树的前序遍历

题目描述:给定一个二叉树,返回它的 前序 遍历。

 示例:

输入: [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

猜你喜欢

转载自blog.csdn.net/weixin_41011942/article/details/86255767
今日推荐