1. # Definition for a binary tree node.
    2. # class TreeNode:
    3. # def __init__(self, x):
    4. # self.val = x
    5. # self.left = None
    6. # self.right = None
    7. class Solution:
    8. def preorderTraversal(self, root: TreeNode) -> List[int]:
    9. # 根 - 左 - 右
    10. if not root: return []
    11. stack = [root]
    12. ans = []
    13. while stack:
    14. root = stack.pop()
    15. ans.append(root.val)
    16. if root.right is not None:
    17. stack.append(root.right)
    18. if root.left is not None:
    19. stack.append(root.left)
    20. return ans
    1. # Definition for a binary tree node.
    2. # class TreeNode:
    3. # def __init__(self, x):
    4. # self.val = x
    5. # self.left = None
    6. # self.right = None
    7. class Solution:
    8. def preorderTraversal(self, root: TreeNode) -> List[int]:
    9. # 根 - 左 - 右
    10. if root is None:
    11. return []
    12. return [root.val] + self.preorderTraversal(root.left) + self.preorderTraversal(root.right)