从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣(LeetCode) (leetcode-cn.com)
//利用队列先进先出的特性,一层一层的把节点加到队列中,
//每次遍历都把之前存储在队列里的节点全部取出,先把值放到list里,再把他的左右子节点加入队列
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
if(root == null){
return new ArrayList();
}
List<List<Integer>> res = new ArrayList();
LinkedList<TreeNode> tempQueue = new LinkedList();
tempQueue.addLast(root);
while(tempQueue.size() != 0){
ArrayList<Integer> list = new ArrayList();
int size = tempQueue.size();
for(int i = 0; i < size; i++){
TreeNode node = tempQueue.removeFirst();
list.add(node.val);
if(node.left != null){
tempQueue.addLast(node.left);
}
if(node.right != null){
tempQueue.addLast(node.right);
}
}
res.add(list);
}
return res;
}
}