#!/usr/bin/env python3 # -*- coding: utf-8 -*- # author: bt3gl def inorder(root) -> list: if root is None: return [] return inorder(root.left) + [root.val] + inorder(root.right) def inorder_iterative(root) -> list: result = [] stack = [] node = root while stack or node: if node: stack.append(node) node = node.left else: node = stack.pop() result.append(node.val) node = node.right return result