• 18.leetcode107_binary_tree_level_order_traversal_II


    1.题目描述

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

    给出一个二叉树,返回它每层树杈的值

    2.题目分析

    题目要求以列表形式输出,列表的下标为每层层数。所以控制列表的层数与其下标相同即可

    3.解题思路

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        def levelOrderBottom(self, root):
            """
            :type root: TreeNode
            :rtype: List[List[int]]
            """
            list_tree=[]   #设置空列表
            def tree(node,list_tree,dep): #自定义tree()函数,向列表中添加元素
                if node!=None: 
                    if len(list_tree)<dep+1:  #控制列表的下标与其层数相同
                        list_tree.append([])    #拓展列表
                    list_tree[dep].append(node.val) #添加每层的值
                    if node.left!=None:         #!!!
                        tree(node.left,list_tree,dep+1) 
                    if node.right!=None:
                        tree(node.right,list_tree,dep+1)
            
            tree(root,list_tree,0)
            return list_tree[::-1]  #反转列表元素

    4.解题感悟

    标注‘!!!’的地方,是因为我一开始用的是return调用tree()函数,结果不能执行下一条命令。由此发现,自己对于函数的理解与运用还存在很大不足,需要努力改进

  • 相关阅读:
    编译型语言和解释性语言
    2.变量和基本类型——2.2变量
    2.变量和基本类型——2.1基本内置类型
    1.开始
    机器学习基础—集成学习Bagging 和 Boosting
    C++多态?
    python dataframe数据条件筛选
    UDA机器学习基础—评估指标
    MFC 树形控件
    MFC 列表控件List Control
  • 原文地址:https://www.cnblogs.com/19991201xiao/p/8433681.html
Copyright © 2020-2023  润新知