剑指offer-22-层序遍历二叉树
从上往下打印二叉树
http://www.nowcoder.com/questionTerminal/7fe2212963db4790b57431d9ed259701
思路
如标题所示,层序遍历二叉树,二叉树遍历有4种,前中后根 再加上 层序遍历二叉树
前三种可以递归,层序遍历二叉树不能递归,一般的使用一个Queue,队列从左往后存储每一层数据
层序遍历有一些变种,比如之字型打印,用一个奇偶数标记一下打印方向。
本题全部一个方向,就直接用一个queue依次添加,不需要额外建一个queue存储下一层结点,而之字形需要,这样可以打印完一层又一层
代码
import java.util.*; public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> arr=new ArrayList<>(); if(root==null){return arr;} Queue<TreeNode> deque=new LinkedList<>(); deque.add(root); while(!deque.isEmpty()){ TreeNode temp=deque.poll(); arr.add(temp.val); if(temp.left!=null){deque.add(temp.left);} if(temp.right!=null){deque.add(temp.right);} } return arr; } }
剑指offer与数据结构 文章被收录于专栏
本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构