ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-7-2 剑指offer-二叉树-层序遍历变种

2022-07-02 12:35:35  阅读:141  来源: 互联网

标签:打印 TreeNode offer int 层序 queue 二叉树 new


剑指 Offer 32 - III. 从上到下打印二叉树 III

难度中等

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution {
11     public List<List<Integer>> levelOrder(TreeNode root) {
12         
13         if (root==null) return new ArrayList<>();
14         Queue<TreeNode> queue=new LinkedList<>();
15         queue.offer(root);
16         List<List<Integer>> ans=new ArrayList<>();
17         boolean flag=false;
18         while (!queue.isEmpty()){
19             int len=queue.size();
20             List<Integer> list=new ArrayList<>();
21             for (int i=0;i<len;i++){
22                 TreeNode temp=queue.poll();
23                 list.add(temp.val);
24                 if (temp.left!=null) queue.offer(temp.left);
25                 if (temp.right!=null) queue.offer(temp.right);
26 
27             }
28             if (flag) Collections.reverse(list);
29             ans.add(list);
30             flag=!flag;
31         }
32         return ans;
33     }
34 }

思路:层序遍历的基础上判断是否要反转列表。

标签:打印,TreeNode,offer,int,层序,queue,二叉树,new
来源: https://www.cnblogs.com/benbicao/p/16437037.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有