52 lines
911 B
Python
52 lines
911 B
Python
|
|
class TreeNode:
|
||
|
|
|
||
|
|
def __init__(self, val):
|
||
|
|
|
||
|
|
self.val = val
|
||
|
|
self.left = None
|
||
|
|
self.right = None
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
def levelOrder(root):
|
||
|
|
|
||
|
|
queue = []
|
||
|
|
queue.append( root )
|
||
|
|
levels = []
|
||
|
|
|
||
|
|
while queue:
|
||
|
|
|
||
|
|
level_size = len(queue)
|
||
|
|
level = []
|
||
|
|
|
||
|
|
while level_size:
|
||
|
|
|
||
|
|
node = queue.pop(0)
|
||
|
|
|
||
|
|
if node:
|
||
|
|
level.append( node.val )
|
||
|
|
|
||
|
|
if node.left:
|
||
|
|
queue.append( node.left )
|
||
|
|
if node.right:
|
||
|
|
queue.append( node.right )
|
||
|
|
|
||
|
|
level_size -= 1
|
||
|
|
|
||
|
|
if level:
|
||
|
|
levels.append( level )
|
||
|
|
|
||
|
|
print levels
|
||
|
|
|
||
|
|
root = TreeNode(0)
|
||
|
|
root.left = TreeNode(1)
|
||
|
|
root.right = TreeNode(2)
|
||
|
|
root.left.left = TreeNode(3)
|
||
|
|
root.left.right = TreeNode(4)
|
||
|
|
# root.right.left = TreeNode(5)
|
||
|
|
root.right.right = TreeNode(6)
|
||
|
|
root.right.right.right = TreeNode(7)
|
||
|
|
|
||
|
|
levelOrder(root)
|
||
|
|
|