网站建设金,有限责任公司公司章程范本,胶南建网站,软件制作app下载提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 前言
提示#xff1a;这里可以添加本文要记录的大概内容#xff1a; 提示#xff1a;以下是本篇文章正文内容#xff0c;下面案例可供参考
一、题目二叉树的层序遍历
… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 前言
提示这里可以添加本文要记录的大概内容 提示以下是本篇文章正文内容下面案例可供参考
一、题目·二叉树的层序遍历
1.题目描述 给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点。 示例 1
输入root [3,9,20,null,null,15,7] 输出[[3],[9,20],[15,7]] 示例 2
输入root [1] 输出[[1]] 示例 3
输入root []
输出[]
来源力扣LeetCode 链接https://leetcode.cn/problems/binary-tree-level-order-traversal 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2.思路与代码
2.1 思路
1.创建一个Array类型数组用来输出一个队列用来储存每层的结点
2.先判断树是否为空若树为空则输出空数组
3.遍历树查找每层结点放入一个新的数组中遍历每层结点结束之后将遍历到的结点加入输出的数组
4.输出数组
2.2 代码
代码如下示例
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public ListListInteger levelOrder(TreeNode root) {//创建一个数组用来输出ListListInteger res new ArrayList();//空树情况if(root null){return res;}//队列储存QueueTreeNode q new ArrayDequeTreeNode();q.add(root);while(!q.isEmpty()){//用来记录某一行ArrayListInteger row new ArrayList(); int size q.size();//因先进入的是根节点故每层节点多少队列大小就是多少for(int i 0; i size; i){TreeNode cur q.poll();row.add(cur.val);//若是左右孩子存在则存入左右孩子作为下一个层次if(cur.left ! null){q.add(cur.left);} if(cur.right ! null){q.add(cur.right);}}//每一层加入输出res.add(row);}return res;}
} 总结
提示这里对文章进行总结