107.Binary Tree Level Order Traversal II

 

# 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: TreeNode) -> List[List[int]]:
        if root == None:
            return []
        queue = [root]
        last = root
        ans = [[root.val]]
        ans_level = []
        while queue:
            node = queue[0]
            queue = queue[1:]
            if node.left :
                queue.append(node.left)
                ans_level.append(node.left.val)
            if node.right:
                queue.append(node.right)
                ans_level.append(node.right.val)
            if node == last:
                if ans_level:
                    ans.append(ans_level)
                    ans_level = []
                if queue:
                    last = queue[-1]
        return ans[::-1]
原文地址:https://www.cnblogs.com/luo-c/p/12857296.html