zoukankan      html  css  js  c++  java
  • 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()函数,结果不能执行下一条命令。由此发现,自己对于函数的理解与运用还存在很大不足,需要努力改进

  • 相关阅读:
    MySQL命令2
    MySQL命令1
    前端之HTML1
    linux命令之df dh
    python call java jar
    redis-py中的坑
    YARN应用程序的开发步骤
    Yarn的服务库和事件库使用方法
    SSH无密码验证
    在centos 6.5 在virtual box 上 安装增强版工具
  • 原文地址:https://www.cnblogs.com/19991201xiao/p/8433681.html
Copyright © 2011-2022 走看看