':type root: TreeNode
:rtype: List[List[int]]'

def levelOrderBottom(self, root):

    if (root is None):
        return []
    (result, current) = ([], [root])
    while current:
        (next_level, vals) = ([], [])
        for node in current:
            vals.append(node.val)
            if node.left:
                next_level.append(node.left)
            if node.right:
                next_level.append(node.right)
        current = next_level
        result.append(vals)
    return result[::(-1)]
