【LeetCode】二叉树的递归遍历
题目
- 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
算法与思路
Preorder traversal order:
- Visit the current node.
- Traverse the left subtree.
- Traverse the right subtree.
Returns:
list: A list of integers representing the preorder traversal.
代码
-
前序
# 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 preorderTraversal(self, root: Optional[TreeNode]) -> List[int]: if not root: return [] return [root.val] + self.preorderTraversal(root.left) + self.preorderTraversal(root.right)
-
中序(同理)
# 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 not root: return [] return self.inorderTraversal(root.left) + [root.val] + self.inorderTraversal(root.right)
-
后序(同理)
class Solution: def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]: if not root: return [] return self.postorderTraversal(root.left) + self.postorderTraversal(root.right) + [root.val]