leetcode面试题 04.03. 特定深度节点链表(bfs)

给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。示例:输入:[1,2,3,4,5,null,7,8]1/  \ 2    3/ \    \ 4   5    7/8输出:[[1],[2,3],[4,5,7],[8]]

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode[] listOfDepth(TreeNode tree) {Queue<TreeNode> queue=new LinkedList<>();ArrayList<ListNode> arrayList=new ArrayList<>();queue.add(tree);while (!queue.isEmpty()){int size=queue.size();ListNode head=new ListNode(0);//建立一个辅助的头节点ListNode helper=head;for(int i=0;i<size;i++){TreeNode temp=queue.poll();ListNode temp2=new ListNode(temp.val);helper.next=temp2;helper=temp2;if(temp.left!=null) queue.offer(temp.left);if(temp.right!=null) queue.offer(temp.right);}arrayList.add(head.next);}ListNode[] listNodes=new ListNode[arrayList.size()];for(int i=0;i<arrayList.size();i++) listNodes[i]=arrayList.get(i);return  listNodes;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java集合中的细节

integer数据对比 对于Integer var ? 在-128至127范围内的赋值&#xff0c;Integer对象是在IntegerCache.cache产生&#xff0c;会复用已有对象&#xff0c;这个区间内的Integer值可以直接使用进行判断&#xff0c;但是这个区间之外的所有数据&#xff0c;都会在堆上产生&…

css扩展语言_如何决定是否应该链接或扩展CSS类

css扩展语言by Sarah Dayan通过莎拉达扬 如何决定是否应该链接或扩展CSS类 (How to decide whether you should chain or extend CSS classes) If you’re building an app or a website that changes often, modular CSS methods solve many issues. Instead of copying your…

vue 是否有word编辑控件_GitHub - C84882428/editor-ui: vue集成 tinymce 富文本编辑器,增加导入 word 模板...

editor-uivue 集成 tinymce 富文本编辑器自定义 tinymce 富文本编辑器,在原来的编辑器中增加上传 word 模板最终展示效果:主要代码:整体思路:1,在编辑器原来的基础上增加上传模板按钮2, 前端上传 word 模板3, 服务端接收将 word 转换为html 返回前端4, 前端拿到服务端返回的值,…

Android开发系列之屏幕密度和单位转换

由于Android的开源性&#xff0c;所以目前市面上面Android手机的分辨率特别多&#xff0c;这样的话就给我适配带来了一定的难度。要想做好适配&#xff0c;我们首先应该明白什么是分辨率、PPI、屏幕大小等概念&#xff0c;还有在不同的屏幕密度下&#xff0c;各个单位之间的转换…

java集合AbstractMap_Java 集合中的 AbstractMap 抽象类

Java 集合中的 AbstractMap 抽象类jdk1.8.0_144AbstractMap 抽象类实现了一些简单且通用的方法, 本身并不难但在这个抽象类中有两个方法非常值得关注, keySet 和 values 方法源码的实现可以说是教科书式的典范抽象类通常作为一种骨架实现, 为各自子类实现公共的方法上一篇我们讲…

leetcode392. 判断子序列(动态规划)

给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长&#xff08;长度 ~ 500,000&#xff09;&#xff0c;而 s 是个短字符串&#xff08;长度 <100&#xff09;。 字符串的一个子序列是原始字符串删…

让机器读懂用户——大数据中的用户画像

让机器读懂用户——大数据中的用户画像 摘要&#xff1a; 用户画像(persona)的概念最早由交互设计之父Alan Cooper提出:“Personas are a concrete representation of target users.” 是指真实用户的虚拟代表&#xff0c;是建立在一系列属性数据之上的目标用户模型。随着互联…

asp.net应用程序_如何在ASP.NET中为聊天应用程序构建键入指示器

asp.net应用程序by Neo Ighodaro由新Ighodaro 如何在ASP.NET中为聊天应用程序构建键入指示器 (How to build a typing indicator for your chat app in ASP.NET) A basic understanding of ASP.NET and jQuery is needed to follow this tutorial.要学习本教程&#xff0c;需要…

activeMQ在文件上传的应用

本次试验主要用到了activeMq和上传插件uploadify的知识&#xff0c;感谢以下两篇文章的作者。 1.http://itindex.net/detail/47160-java-jquery-%E4%B8%8A%E4%BC%A0 2.http://blog.csdn.net/jiuqiyuliang/article/details/47160259 本文中不再提供activeMq和uploadify的介绍。 …

java nginx 例子_Java及nginx实现文件权限控制代码实例

我们知道&#xff0c;使用nginx作为文件下载服务器&#xff0c;可以极大地降低对后端Java服务器的负载冲击&#xff0c;但是nginx本身并不提供授权控制&#xff0c;因此好的方案是由后端服务器实现权限控制&#xff0c;最好的方式是直接复用应用的认证体系&#xff0c;最大化的…

leetcode934. 最短的桥(dfs+bfs)

在给定的二维二进制数组 A 中&#xff0c;存在两座岛。&#xff08;岛是由四面相连的 1 形成的一个最大组。&#xff09; 现在&#xff0c;我们可以将 0 变为 1&#xff0c;以使两座岛连接起来&#xff0c;变成一座岛。 返回必须翻转的 0 的最小数目。&#xff08;可以保证答…

谢烟客---------Linux之DNS服务系统的基础知识

DNS Domain Name Server1)C/S架构&#xff1a;SOCKET通信IP PORT2&#xff09;应用层协议&#xff1a;资源子网BIND Berkerley Information Name DomainDNS由来1&#xff09;统一名字&#xff0c;自己维护 <自己查询>解析: 基于key查找value: 查询数据库(二维关系的表: …

Java实现点击导出excel页面遮罩屏蔽,下载完成后解除遮罩

一、问题场景 最近在做数据统计功能&#xff0c;需求是导出大数据量的excel&#xff0c;时间间隔较长&#xff0c;大概需要十秒左右&#xff0c;点击导出后&#xff0c;页面没有做任何处理&#xff0c;用户也不知道是否正在导出&#xff1b;如果没有做交互上的限制&#xff0c;…

pbs 支持 java_Linux下Java安装与配置

安装以JDK1.6.0_43为例下载jdk-6u43-linux-x64.bin&#xff0c;http://www.oracle.com/technetwork/java/javase/downloads/index.html增加可执行权限 chmod x jdk-6u43-linux-x64.bin&#xff0c;执行 ./jdk-6u43-linux-x64.bin 生成目录jdk1.6.0_43拷贝到/usr/share下&#x…

使用Chatkit构建Node.js命令行聊天应用程序

by Hugo雨果 使用Chatkit构建Node.js命令行聊天应用程序 (Build a Node.js command-line chat application with Chatkit) Building chat in your app can be pretty complex. Yet, with Chatkit, implementing fully-featured chat is nothing but a few lines of code.在您的…

java 毫秒转分钟和秒_Java程序将毫秒转换为分钟和秒

Java程序将毫秒转换为分钟和秒在上面的程序中&#xff0c;您将学习如何在Java中将毫秒分别转换为分钟和秒。示例1&#xff1a;将毫秒分别转换为分钟和秒import java.util.concurrent.TimeUnit;public class Milliseconds {public static void main(String[] args) {long millis…

Andrew Ng机器学习之一 导论

监督学习与无监督学习 监督学习&#xff08;Supervised Learning) Ng的原文是&#xff1a; We gave the algorithm a data set that the "right answers" were given. 即给定了一个正确结果的集合供算法学习&#xff0c;强调了需要实现准备好正负样本喂给机器。 无监…

leetcode994. 腐烂的橘子(bfs)

在给定的网格中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;任何与腐烂的橘子&#xff08;在 4 个正方向上&#xff09;相邻的新鲜橘子都会腐烂。 返回直…

ES6对象的扩展

1.属性简写表示 2.方法简写表示 属性与方法简写&#xff1a; 3.属性名表达式 ES6允许字面量定义对象时&#xff0c;用方法二&#xff08;表达式&#xff09;作为对象的属性名&#xff0c;即把表达式放在方括号内。 4.Object.is()比较两个值是否严格相等 转载于:https://www.cnb…

Spring Cloud项目MVN编译 -- Non-resolvable import POM

最近利用闲余时间&#xff0c;打算搭建一套基于Spring Cloud G版的微服务架构(Spring boot 2.1.0)&#xff0c;一顿操作之后,IDEA也没有提示什么错误,自认为微服务搭建完毕。启动项目前&#xff0c;习惯性的Maven -clean了一下&#xff0c;我去&#xff0c;IDEA里面的Maven Pro…