题解 | #求二叉树的层序遍历#
求二叉树的层序遍历
http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
import java.util.*;
public class Solution {
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
if (root == null) {
return new ArrayList<>();
}
ArrayList<ArrayList<Integer>> list = new ArrayList<>();
dfs3(root, list, 1);
return list;
}
private static void dfs3(TreeNode node, ArrayList<ArrayList<Integer>> list, int num) {
if (node == null) {
return;
}
ArrayList<Integer> arrayList;
if (list.size() < num) {
arrayList = new ArrayList<>();
arrayList.add(node.val);
list.add(arrayList);
} else {
arrayList = list.get(num - 1);
arrayList.add(node.val);
}
if (node.left != null) {
dfs3(node.left, list, num + 1);
}
if (node.right != null) {
dfs3(node.right, list, num + 1);
}
}
}
查看11道真题和解析