【每日一题】【队列的实现类】【每层元素个数】2022年1月11日-NC15 求二叉树的层序遍历
描述
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
注意:每一层上元素的个数
解答:
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { ArrayList<ArrayList<Integer>> res = new ArrayList<>(); /** * * @param root TreeNode类 * @return int整型ArrayList<ArrayList<>> */ public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) { level(root); return res; } public void level(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); List<Integer> list = new ArrayList<>(); if(root == null) { return; } queue.add(root); while(!queue.isEmpty()) { //需要定义每一层元素的个数(队内元素个数) int size = queue.size(); while(size > 0) { TreeNode node = queue.poll(); list.add(node.val); if(node.left != null) { queue.add(node.left); } if(node.right != null) { queue.add(node.right); } size--; } res.add(new ArrayList<>(list)); list = new ArrayList<>(); } } }
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15787517.html