代码随想录打卡(13) - 二叉树的遍历(递归)

力扣94.二叉树的中序遍历

结构一般用like链表的类型存储(还有顺序存储不常用)。

# 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]:
        result = []
        def traversal(root:TreeNode): # 注意直接申明了类型
            if root == None:
                return
            traversal(root.left) # 先左,否则append的顺序不对
            result.append(root.val) # 中  注意引用时加.val
            traversal(root.right) # 右
            return result
        
        traversal(root)
        return result

力扣144.二叉树的前序遍历

一样的模板直接套就好了

# 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]:
        result = []
        def traversal(root:TreeNode):
            if root == None:
                return 
            result.append(root.val) # 中
            traversal(root.left) # 左
            traversal(root.right) # 右

        traversal(root)
        return result

你可能感兴趣的:(链表,数据结构)