更多2019年的技术文章,欢迎关注我的微信公众号:码不停蹄的小鼠松(微信号:busy_squirrel),也可扫下方二维码关注获取最新文章哦~
T:
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
这道题没什么难的,就是一个树的层次遍历,用个队列即可。
code:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
/**
* T: 从上往下打印二叉树
*
* 题目描述
* 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
*
* date: 2015.11.23 21:14
* @author SSS
*
*/
public class Solution {
/**
* 层次遍历,可用队列实现
* @param root
* @return
*/
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> elementList = new ArrayList<Integer>();
// 二叉树可为空
if (root == null) {
return elementList;
}
Queue<TreeNode> layerQueue = new LinkedList<TreeNode>();
layerQueue.offer(root);
while (!layerQueue.isEmpty()) {
TreeNode temp = layerQueue.poll();
elementList.add(temp.val);
// 将移除的头部元素的两个子节点(如果不为空)都放入队列中,先左后右
if (temp.left != null) {
layerQueue.offer(temp.left);
}
if (temp.right != null) {
layerQueue.offer(temp.right);
}
}
return elementList;
}
}
更多2019年的技术文章,欢迎关注我的微信公众号:码不停蹄的小鼠松(微信号:busy_squirrel),也可扫下方二维码关注获取最新文章哦~