您的位置:首页 > Web前端

剑指Offer------从上往下打印二叉树(层序遍历)

2017-10-04 12:34 525 查看

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

<分析>
借助一个队列即可解决


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;

/**
*
* @author zy
* @date 2017年10月4日 上午11:29:30
* @Decription 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
*/
public class Ex15 {
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;

public TreeNode(int val) {
this.val = val;
}
}

public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> result = new ArrayList<>();
if (root==null) {
return result;
}
Queue<TreeNode> queue = new LinkedList<>();
//根结点进队
queue.offer(root);
while(!queue.isEmpty()){
//队列头出队
TreeNode treeNode = queue.poll();
//左子结点不为空则进队
if (treeNode.left!=null) {
queue.offer(treeNode.left);
}
//右子结点不为空则进队
if (treeNode.right!=null) {
queue.offer(treeNode.right);
}
result.add(treeNode.val);
}

return result;
}
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: