每日一题20201208(144. 二叉树的前序遍历)

简介: 二叉树的前序遍历

144. 二叉树的前序遍历

0.jpg

image-20201208190400120

递归写法



前序遍历顺序就是 根节点->左节点->右节点


# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def preorderTraversal(self, root: TreeNode) -> List[int]:
        node = []
        self.order(root, node)
        return node
    def order(self, root, node):
        if root is None:
            return
        node.append(root.val)
        self.order(root.left, node)
        self.order(root.right, node)

迭代写法



通过一个栈来维护节点的输出顺序,每次出一个节点,把节点的值拿出来放到结果数组里,请注意栈是先进后出。
所以先进right节点,到时候先出的就是left节点。


# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def preorderTraversal(self, root: TreeNode) -> List[int]:
        if root is None:
            return []
        stack = [root]
        ans = []
        while len(stack) > 0:
            current = stack.pop()
            ans.append(current.val)
            if current.right is not None:
                stack.append(current.right)
            if current.left is not None:
                stack.append(current.left)
        return ans

1.jpg

image-20201208191239586




相关文章
|
5天前
|
消息中间件 Kubernetes NoSQL
剑指offer常见题 - 二叉树问题(三)
剑指offer常见题 - 二叉树问题(三)
|
5天前
|
消息中间件 Kubernetes NoSQL
剑指offer常见题 - 二叉树问题(一)
剑指offer常见题 - 二叉树问题(一)
|
5天前
|
消息中间件 Kubernetes NoSQL
剑指offer常见题 - 二叉树问题(二)
剑指offer常见题 - 二叉树问题(二)
|
5天前
|
算法 API DataX
二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”
二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”
【力扣每日一题】144. 二叉树的前序遍历
【力扣每日一题】144. 二叉树的前序遍历
【面试小知识】带你深入了解二叉树的前中序遍历
【面试小知识】带你深入了解二叉树的前中序遍历
|
5月前
|
存储 算法
每日一题:LeetCode-102.二叉树的层序遍历
每日一题:LeetCode-102.二叉树的层序遍历
|
6月前
|
存储 算法
代码随想录算法训练营第十三天 | LeetCode 144. 二叉树的前序遍历、LeetCode 145. 二叉树的后序遍历、LeetCode 94. 二叉树的中序遍历
代码随想录算法训练营第十三天 | LeetCode 144. 二叉树的前序遍历、LeetCode 145. 二叉树的后序遍历、LeetCode 94. 二叉树的中序遍历
47 0
|
11月前
|
算法 Java
代码随想录训练营day14|144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历...
代码随想录训练营day14|144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历...