本文主要是介绍指offer22-上往下打印二叉树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
剑指offer22-上往下打印二叉树
最近全国疫情严重,待在家里没事干,马上又要准备春招了,最近刷刷题,记录一下!再说一句,武汉加油,大家出门记得戴口罩!
1、题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
2、思路
本题实际上就是二叉树的层次遍历,深度遍历可以用递归或者栈,而层次遍历很明显应该使用队列。同样我们可以通过一个例子来分析得到规律:每次打印一个结点时,如果该结点有子结点,则将子结点放到队列的末尾,接下来取出队列的头重复前面的打印动作,直到队列中所有的结点都打印完毕。
3、代码
public class Solution {public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {//保存结果ArrayList<Integer> res=new ArrayList<>();if(root==null)return res;Queue<TreeNode> queue=new LinkedList<>(); //定义一个队列queue.add(root);while(queue.size()!=0){TreeNode temp=queue.poll();//队头移除res.add(temp.val);if(temp.left!=null)queue.add(temp.left);if(temp.right!=null)queue.add(temp.right); }return res;}
}
这篇关于指offer22-上往下打印二叉树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!