领扣(LeetCode)N叉树的层序遍历 个人题解
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树
:
返回其层序遍历:
[ [1], [3,2,4], [5,6] ]
说明:
- 树的深度不会超过
1000
。 - 树的节点总数不会超过
5000
。
二叉树的层序遍历的升级版,做法思路类似,使用队列存放当前层的所有节点,遍历所有层。可以参考我往期的二叉树层次遍历的做法 https://www.cnblogs.com/axiangcoding/p/10013327.html
本题代码如下:
1 class Solution { 2 public List<List<Integer>> levelOrder(Node root) { 3 if(root==null) 4 return null; 5 List<List<Integer>> ans=new ArrayList<>(); 6 Queue<Node> queue=new LinkedList<>(); 7 queue.add(root); 8 while(!queue.isEmpty()) 9 { 10 List<Integer> secans=new ArrayList<>(); 11 Queue<Node> qtmp=new LinkedList<>(); 12 while(!queue.isEmpty()) 13 { 14 Node ntmp=queue.poll(); 15 secans.add(ntmp.val); 16 List<Node> chil=ntmp.children; 17 for(int i=0;i<chil.size();i++) 18 { 19 if(chil.get(i)!=null) 20 qtmp.add(chil.get(i)); 21 } 22 } 23 queue=qtmp; 24 ans.add(secans); 25 } 26 return ans; 27 } 28 29 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步