Binary Tree Inorder Traversal LeetCode solution in Python
1from typing import List, Optional234class Solution:5"""6Time: O(n)7Memory: O(n)8"""910def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:11inorder = []12stack = []1314while stack or root is not None:15if root:16stack.append(root)17root = root.left18else:19node = stack.pop()20inorder.append(node.val)21root = node.right2223return inorder242526class Solution:27"""28Time: O(n)29Memory: O(n)30"""3132def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:33return list(self.inorder_generator(root))3435@classmethod36def inorder_generator(cls, tree: Optional[TreeNode]):37if tree is not None:38yield from cls.inorder_generator(tree.left)39yield tree.val40yield from cls.inorder_generator(tree.right)