LeetCode 144. Binary Tree Preorder Traversal

Post by ailswan Oct.16, 2023

144. Binary Tree Preorder Traversal

Problem Statement

link: https://leetcode.com/problems/binary-tree-preorder-traversal/ https://leetcode.cn/problems/binary-tree-preorder-traversal/

Given the root of a binary tree, return the preorder traversal of its nodes’ values.

Example:

Input: root = [1,null,2,3] Output: [1,2,3]

Input: root = [] Output: []

Input: root = [1] Output: []

Solution Approach

recursion or stack

Algorithm

Implement

    class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
      if not root:
          return []
      else:
          return [root.val] + self.preorderTraversal(root.left) + self.preorderTraversal(root.right)

class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
      stack = [root]
      res = []
      while stack:
          node = stack.pop()
          if node:
              res.append(node.val)
              stack.append(node.right)
              stack.append(node.left)
      return res