from typing import List, Optional # 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 root is None: return [] if root.left is not None: return ( self.inorderTraversal(root.left) + [root.val] + self.inorderTraversal(root.right) ) elif root.right is not None: return [root.val] + self.inorderTraversal(root.right) else: return [root.val]