#!/usr/bin/env python3 # -*- coding: utf-8 -*- # author: bt3gl # recursive and iterative inorder traversal def preorder_recursive(root: Optional[TreeNode]) -> list[int]: if root == None: return [] return [root.val] + preorder_recursive(root.left) + preorder_recursive(root.right) def preorder_iterative(root: Optional[TreeNode]) -> list[int]: result = [] stack = [root] while stack: current = stack.pop() result.append(current.val) if current.right: stack.append(current.right) if current.left: stack.append(current.left) return result