Tech for good

[Leetcode/Tree, Binary Tree, Stack, DFS] 94. Binary Tree Inorder Traversal 본문

IT/Computer Science

[Leetcode/Tree, Binary Tree, Stack, DFS] 94. Binary Tree Inorder Traversal

Diana Kang 2025. 7. 24. 05:10

Tree > Traversal 

1. DFS => Recursion (using self; recursive) or Stack (iterative)

  • Pre-order: Root -> Left -> Right
  • In-order: Left -> Root -> Right
  • Post-order: Left -> Right -> Root
# 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 inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        
        left = self.inorderTraversal(root.left) # [4, 2, 6, 5, 7]
        curr = [root.val] # [1]
        right = self.inorderTraversal(root.right) # [3, 9, 8]

        return left + curr + right

2. BFS => Queue

  • Level-order: After visiting nodes on the same level, then visit the next levels.