## @lc app=leetcode id=144 lang=python3## [144] Binary Tree Preorder Traversal## https://leetcode.com/problems/binary-tree-preorder-traversal/description/## algorithms# Easy (66.96%)# Likes: 7805# Dislikes: 203# Total Accepted: 1.5M# Total Submissions: 2.2M# Testcase Example: '[1,null,2,3]'## Given the root of a binary tree, return the preorder traversal of its nodes'# values.# # # Example 1:# # # Input: root = [1,null,2,3]# Output: [1,2,3]# # # Example 2:# # # Input: root = []# Output: []# # # Example 3:# # # Input: root = [1]# Output: [1]# # # # Constraints:# # # The number of nodes in the tree is in the range [0, 100].# -100 <= Node.val <= 100# # # # Follow up: Recursive solution is trivial, could you do it iteratively?# ## @lc code=start# Definition for a binary tree node.fromtypingimportOptional,ListclassTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightclassSolution:defpreorderTraversal(self,root:Optional[TreeNode])->List[int]:o=[]traversal(root,o)returnodeftraversal(n,o):ifnisNone:returno.append(n.val)traversal(n.left,o)traversal(n.right,o)# @lc code=end