• 二叉树练习


    描述
    给你二叉树的根节点 root ,返回它节点值的 前、中、后序遍历。
    数据范围:二叉树的节点数量满足 0≤n≤100 ,二叉树节点的值满足1≤val≤100 ,树的各节点的值各不相同

    BM23 二叉树的前序遍历

    示例1
    输入:{
       1,#,2,3}
    返回值:[1,2,3]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    #
    # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    #
    # 
    # @param root TreeNode类 
    # @return int整型一维数组
    #
    class Solution:
        def preorderTraversal(self , root: TreeNode) -> List[int]:
            # write code here
            tree_list = []
            self.perorder(tree_list, root)
            return tree_list
        
        def perorder(self, tree_list: List[int], root: TreeNode):
            if root is None:
                return 
            tree_list.append(root.val)
            self.perorder(tree_list, root.left)
            self.perorder(tree_list, root.right)
                
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    BM24 二叉树的中序遍历

    示例1
    输入:{
       1,2,#,#,3}
    返回值:[2,3,1]
      
    示例2
    输入:{
       }
    返回值:[]
    
    示例3
    输入:{
       1,2}
    返回值:[2,1]
     
    示例4
    输入:{
       1,#,2}
    返回值:[1,2]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    #
    # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    #
    # 
    # @param root TreeNode类 
    # @return int整型一维数组
    #
    import sys
    sys.setrecursionlimit(10000)
    class Solution:
        def inorderTraversal(self , root: TreeNode) -> List[int]:
            # write code here
            tree_list = []
            self.inorder(root, tree_list)
            return tree_list
        
        def inorder(self, root: TreeNode, tree_list:List[int]):
            if root is None:
                return
            
            self.inorder(root.left, tree_list)
            tree_list.append(root.val)
            self.inorder(root.right, tree_list)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    BM25 二叉树的后序遍历

    示例1
    输入:{
       1,#,2,3}
    返回值:[3,2,1]
      
    示例2
    输入:{
       1}
    返回值:[1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    #
    # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    #
    # 
    # @param root TreeNode类 
    # @return int整型一维数组
    #
    class Solution:
        def postorderTraversal(self , root: TreeNode) -> List[int]:
            # write code here
            tree_list = []
            self.postorder(tree_list, root)
            return tree_list
        
        def postorder(self, tree_list:List[int], root: TreeNode):
            if root is None:
                return
            
            self.postorder(tree_list, root.left)
            self.postorder(tree_list, root.right)
            tree_list.append(root.val)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    BM26 求二叉树的层序遍历

    描述
    给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
    例如:
    给定的二叉树是{3,9,20,#,#,15,7},
    该二叉树层序遍历的结果是
    [
    [3],
    [9,20],
    [15,7]
    ]
    数据范围:二叉树的节点数满足 1≤n≤10^5

    示例1
    输入:{
       1,2}
    返回值:[[1],[2]]
    
    示例2
    输入:{
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    项目管理软件dhtmlxGantt配置教程(十五):突出展示时间段
    分享一个基于SpringBoot+Vue的招生宣传管理系统源码 招生计划管理系统代码
    jsp公务员考试系统myeclipse开发Mysql数据库web结构java编程计算机网页项目
    大数据必知必会之Kafka
    【自动驾驶多传感器融合+多算法融合】
    【解决方案】vue 项目 npm run dev 时报错:‘cross-env‘ 不是内部或外部命令,也不是可运行的程序
    java计算机毕业设计华北地区阔叶林木叶部病虫害图像管理系统MyBatis+系统+LW文档+源码+调试部署
    二叉树讲解
    mysql配置项整理
    Js节流防抖函数封装学习
  • 原文地址:https://blog.csdn.net/qq_42352516/article/details/126722081