Problem
Given the root of a binary tree, return the level order traversal of its nodes’ values. (i.e., from left to right, level by level).
Algorithm
Recursion. Just use dfs, do inorder traversal, then use the depth as the level, each item on the left tree-tree will visit before the right sub-tree, so the node will visit in the order from left to right.
Code
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
Q = []
def dfs(root, d):
if not root:
return
if len(Q) <= d:
Q.append([root.val])
else:
Q[d].append(root.val)
dfs(root.left, d+1)
dfs(root.right, d+1)
dfs(root, 0)
return Q
The title cannot longer than 30?