网站建设对客户的影响,答题app制作教程,聊城哪里可以学网站建设呢,营销型网站建设怎么做营销网站建设题目地址#xff1a;从上往下打印二叉树_牛客题霸_牛客网
题目回顾#xff1a;
不分行从上往下打印出二叉树的每个节点#xff0c;同层节点从左至右打印。例如输入{8,6,10,#,#,2,1}#xff0c;如以下图中的示例二叉树#xff0c;则依次打印8,6,10,2,1(空节点不打印…题目地址从上往下打印二叉树_牛客题霸_牛客网
题目回顾
不分行从上往下打印出二叉树的每个节点同层节点从左至右打印。例如输入{8,6,10,#,#,2,1}如以下图中的示例二叉树则依次打印8,6,10,2,1(空节点不打印跳过)请你将打印的结果存放到一个数组里面返回。 解题思路
使用队列
首先队列是尾部插入头部删除的一种数据结构。在遍历树的过程中使用层序遍历的话是从根开始由左向右进行遍历的那么我们在遍历树的时候将当前根的结点存入到队列中去遍历到结点时将其从队列中删除这样一来队列poll方法获取的队列的头就是按从上到下顺序的。也就是我们要的结果。 整体代码 public static ArrayListInteger PrintFromTopToBottom(TreeNode root) {ArrayListInteger res new ArrayList();if (root null)return res;QueueTreeNode q new LinkedList();q.offer(root);while (!q.isEmpty()){TreeNode cur q.poll();res.add(cur.val);if (cur.left!null){q.add(cur.left);}if (cur.right ! null)q.add(cur.right);}return res;}