Faaez Razeen

Binary Tree Inorder Traversal

  • 1 min read
  • Tree
  • Stack
  • LC-Easy
  • Binary Tree
  • Depth First Search

3 years ago

Approach 1: Recursion

def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]: nodes = [] self.inorder(root, nodes) return nodes def inorder(self, root: Optional[TreeNode], nodes: List[int]): if root: self.inorder(root.left, nodes) nodes.append(root.val) self.inorder(root.right, nodes)

Approach 2: Iterative

def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]: nodes, stack = [], [] node = root while stack or node: while node: stack.append(node) node = node.left node = stack.pop() nodes.append(node.val) node = node.right return nodes