此题很简单,就是BFS,在遍历的时候加个标记,记录一下深度信息就好啦
代码如下:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if root == None:
return None
queue = []
queue.append(root)
queue.append(1)
result = [[] for _ in range(10000)]
while(len(queue)!=0):
temp_root = queue[0]
temp_index = queue[1]
result[temp_index-1].append(temp_root.val)
queue= queue[2:]
if temp_root.left != None:
queue.append(temp_root.left)
queue.append(temp_index+1)
if temp_root.right != None:
queue.append(temp_root.right)
queue.append(temp_index+1)
for index in range(10000):
if len(result[index]) == 0:
result = result[:index]
break
return result