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