从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
思路:采用递归的方式,依次将当前节点加入到集合中,然后递归调用当前节点的左节点和右节点
List<Integer> values = new ArrayList<>();
public int[] levelOrder(TreeNode root) {
if (root == null) {
return null;
}
levelOrder1(root);
int[] array = new int[values.size()];
for (int i = 0;i<values.size();i++) {
array[i] = values.get(i);
}
return array;
}
public void levelOrder1(TreeNode root) {
if (root == null) {
return;
}
values.add(root.val);
levelOrder1(root.left);
levelOrder1(root.right);
}
网友评论