题解 | #求二叉树的层序遍历#
求二叉树的层序遍历
http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型ArrayList<ArrayList<>>
*/
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
// write code here
if(root == null){
return null;
}
Queue<TreeNode> queue = new LinkedList<>();
ArrayList<ArrayList<Integer>> ans = new ArrayList<>();
queue.add(root);
while(!queue.isEmpty()){
int size = queue.size();
TreeNode cur = queue.poll();
list.add(cur.val);
if(cur.left!=null) queue.add(cur.left);
if(cur.right!=null) queue.add(cur.right);
}
ans.add(list);
}
return ans;
}
}
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型ArrayList<ArrayList<>>
*/
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
// write code here
if(root == null){
return null;
}
Queue<TreeNode> queue = new LinkedList<>();
ArrayList<ArrayList<Integer>> ans = new ArrayList<>();
queue.add(root);
while(!queue.isEmpty()){
int size = queue.size();
ArrayList<Integer> list = new ArrayList<>();
//遍历每一层,将当前值加入集合,并将子节点加入队列
for(int i = 0;i<size;i++){TreeNode cur = queue.poll();
list.add(cur.val);
if(cur.left!=null) queue.add(cur.left);
if(cur.right!=null) queue.add(cur.right);
}
ans.add(list);
}
return ans;
}
}