class Solution(object):
def levelOrder(self, root):
if not root: return []
queue = collections.deque()
result = []
queue.append(root)
while queue:
curlen_level = len(queue)
cur_level = []
for _ in range(curlen_level):
note = queue.popleft()
cur_level.append(note.val)
if note.left: queue.append(note.left)
if note.right: queue.append(note.right)
result.append(cur_level)
return result
解法二DFS
class Solution(object):
def levelOrder(self, root):
if not root: return []
self.result = []
self._dfs(root, 0)
return self.result
def _dfs(self, note, level):
if not node: return
if len(self.result) < level + 1:
self.result.append([])
self.result[level].append(note.val)
self._dfs(note.left, level + 1)
self._dfs(note.left, level+1)