Skip to content

144. Binary Tree Preorder Traversal

Problem Page: https://leetcode.com/problems/binary-tree-preorder-traversal/

#
# @lc app=leetcode id=144 lang=python3
#
# [144] Binary Tree Preorder Traversal
#
# https://leetcode.com/problems/binary-tree-preorder-traversal/description/
#
# algorithms
# Easy (66.96%)
# Likes:    7805
# Dislikes: 203
# Total Accepted:    1.5M
# Total Submissions: 2.2M
# Testcase Example:  '[1,null,2,3]'
#
# Given the root of a binary tree, return the preorder traversal of its nodes'
# values.
# 
# 
# Example 1:
# 
# 
# Input: root = [1,null,2,3]
# Output: [1,2,3]
# 
# 
# Example 2:
# 
# 
# Input: root = []
# Output: []
# 
# 
# Example 3:
# 
# 
# Input: root = [1]
# Output: [1]
# 
# 
# 
# Constraints:
# 
# 
# The number of nodes in the tree is in the range [0, 100].
# -100 <= Node.val <= 100
# 
# 
# 
# Follow up: Recursive solution is trivial, could you do it iteratively?
# 
#

# @lc code=start
# Definition for a binary tree node.
from typing import Optional, List

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]:
        o = []
        traversal(root, o)
        return o

def traversal(n, o):
    if n is None:
        return
    o.append(n.val)
    traversal(n.left, o)
    traversal(n.right, o)

# @lc code=end

Last update: Feb 25, 2024
Created: Feb 25, 2024

Comments