剑指 Offer 32 - I. 从上到下打印二叉树
java
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int[] levelOrder(TreeNode root) {
if(root == null) return new int[0];
Queue<TreeNode> queue = new LinkedList<>();
ArrayList<Integer> res = new ArrayList<>();
return forEacher( root,queue ,res);
}
int[] forEacher(TreeNode root,Queue<TreeNode> queue ,ArrayList<Integer> res){
queue.add(root);
while(!queue.isEmpty()){
TreeNode tmp = queue.poll();
res.add(tmp.val);
if(tmp.left!=null) queue.add(tmp.left);
if(tmp.right!=null) queue.add(tmp.right);
}
int[] d = new int[res.size()];
for(int i = 0;i<res.size();i++){
d[i] = res.get(i);
}
return d;
}
}
剑指 Offer 32 - II. 从上到下打印二叉树 II
java
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
List<List<Integer>> res = new ArrayList<>();
if(root != null) queue.add(root);
while(!queue.isEmpty()){
List<Integer> node = new ArrayList<>();
for(int i=queue.size();i>0;i--){
TreeNode tmp = queue.poll();
node.add(tmp.val);
if(tmp.left!=null) queue.add(tmp.left);
if(tmp.right!=null) queue.add(tmp.right);
}
res.add(node);
}
return res;
}
}
剑指 Offer 32 - III. 从上到下打印二叉树 III
java
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
List<List<Integer>> res = new ArrayList<>();
if(root != null) queue.add(root);
while(!queue.isEmpty()){
List<Integer> node = new ArrayList<>();
for(int i=queue.size();i>0;i--){
TreeNode tmp = queue.poll();
node.add(tmp.val);
if(tmp.left!=null) queue.add(tmp.left);
if(tmp.right!=null) queue.add(tmp.right);
}
res.add(node);
}
return res;
}
}