def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
stack, output = [], []
if root:
stack.append(root)
output.append([root.val])
while stack:
lst, lst2 = [], []
while stack:
node = stack.pop(0)
if node.left:
lst.append(node.left)
lst2.append(node.left.val)
if node.right:
lst.append(node.right)
lst2.append(node.right.val)
if lst:
output.append(lst2)
stack = lst
return output