力扣:144. 二叉树的前序遍历(Python3)

题目:

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

力扣:144. 二叉树的前序遍历(Python3)_第1张图片

输入:root = [1,null,2,3]
输出:[1,2,3]


示例 2:

输入:root = []
输出:[]


示例 3:

输入:root = [1]
输出:[1]

示例4:

力扣:144. 二叉树的前序遍历(Python3)_第2张图片

输入:root = [1,2]

输出:[1,2]

示例5:

力扣:144. 二叉树的前序遍历(Python3)_第3张图片

输入:root = [1,null,2]

输出:[1,2]

解法:

使用栈,依次把右结点、左结点入栈,依次弹出。

代码:

# 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: Optional[TreeNode]) -> List[int]:
        result = []
        stack = [root]
        while root and stack:
            root = stack.pop()
            result.append(root.val)
            if root.right:
                stack.append(root.right)
            if root.left:
                stack.append(root.left)
        return result

你可能感兴趣的:(LeetCode,leetcode,算法,python)