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

来源:互联网 发布:阿里云代码托管 收费吗 编辑:程序博客网 时间:2024/05/29 19:03

题目描述

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

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


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;}}



阅读全文
0 0
原创粉丝点击