剑指offer广度优先遍历二叉树
Posted singular
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer广度优先遍历二叉树相关的知识,希望对你有一定的参考价值。
问题:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
*思路:先用队列存放树的根结点。每次出队一个结点,将结点非空的左右孩子分别入队。重复此过程,直到队列为空。
1 import java.util.ArrayList; 2 /** 3 public class TreeNode { 4 int val = 0; 5 TreeNode left = null; 6 TreeNode right = null; 7 8 public TreeNode(int val) { 9 this.val = val; 10 11 } 12 13 } 14 */ 15 16 17 public class Solution { 18 19 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { 20 ArrayList<TreeNode> queue = new ArrayList<TreeNode>(); 21 ArrayList<Integer> result = new ArrayList<Integer>(); 22 //非空处理 23 if(root==null){ return result;} 24 //初始化 25 queue.add(root); 26 result.add(root.val); 27 while(!queue.isEmpty()){ 28 TreeNode node = queue.remove(0); 29 TreeNode left = node.left; 30 TreeNode right = node.right; 31 if(left!=null){ 32 queue.add(left); 33 result.add(left.val); 34 } 35 if(right!=null){ 36 queue.add(right); 37 result.add(right.val); 38 } 39 } 40 return result; 41 } 42 }
以上是关于剑指offer广度优先遍历二叉树的主要内容,如果未能解决你的问题,请参考以下文章
剑指 Offer 32 - II. 从上到下打印二叉树 II