剑指 Offer 32 - II. 从上到下打印二叉树 II
public List<List<Integer>> levelOrder(TreeNode root) {
//队列,遍历上一层的时候,顺便吧下一层元素加入队列
Queue<TreeNode> queue = new LinkedList<>();
List<List<Integer>> ans = new LinkedList<>();
if (root == null) {
return ans;
}
queue.add(root);
while (!queue.isEmpty()) {
List<Integer> tmp = new LinkedList<>();
int lastLen = queue.size();
for (int i = lastLen; i > 0; i--) {
TreeNode node = queue.poll();
tmp.add(node.val);
if (node.left != null) {//把下一层元素放入队列
queue.add(node.left);
}
if (node.right != null) {
queue.add(node.right);
}
}
ans.add(tmp);
}
return ans;
}
https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/
public int[] levelOrder(TreeNode root) {
//队列
Queue<TreeNode> queue = new LinkedList<>();
List<Integer> list = new LinkedList<>();
if (root == null) {
return new int[]{};
}
queue.add(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
list.add(node.val);
if (node.left != null) {
queue.add(node.left);
}
if (node.right != null) {
queue.add(node.right);
}
}
int[] ans = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
ans[i] = list.get(i);
}
return ans;
}
https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof/
剑指 Offer 32 - III. 从上到下打印二叉树 III
public List<List<Integer>> levelOrder(TreeNode root) {
//队列,遍历上一层的时候,顺便吧下一层元素加入队列
Queue<TreeNode> queue = new LinkedList<>();
List<List<Integer>> ans = new LinkedList<>();
if (root == null) {
return ans;
}
queue.add(root);
int count = 1;
while (!queue.isEmpty()) {
List<Integer> tmp = new LinkedList<>();
int lastLen = queue.size();
for (int i = lastLen; i > 0; i--) {
TreeNode node = queue.poll();
tmp.add(node.val);
if (node.left != null) {//把下一层元素放入队列
queue.add(node.left);
}
if (node.right != null) {
queue.add(node.right);
}
}
if (count % 2 == 0) {
Collections.reverse(tmp);
}
ans.add(tmp);
count = count + 1;
}
return ans;
}