使用队列BFS:
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> list = new ArrayList<>();
LinkedList<TreeNode> treeNodes = new LinkedList<>();
if (root != null) {
treeNodes.add(root);
}
while (!treeNodes.isEmpty()) {
List<Integer> list1 = new ArrayList<>();
int size = treeNodes.size();
for (int i = 0; i < size; i++) {
TreeNode node = treeNodes.removeFirst();
list1.add(node.val);
if (node.left != null) treeNodes.add(node.left);
if (node.right != null) treeNodes.add(node.right);
}
list.add(list1);
}
return list;
}
}