力扣每日刷题

news/2025/1/12 18:53:40/

102. 二叉树的层序遍历

心路历程:一开始想的是使用bfs但是有很多的细节没考虑到(不知道如何去处理一层只有一个节点的情况),然后又想到了使用递归回溯的来解决。

解题思路:使用一个总的List来记录所有的List集合,然后从根节点开始调用函数(根节点所在的层数是总list的下表0),在处理一个节点的时候先看该层的list是否被建立过,如果没有就建立一个list放入。然后向这个list中添加当前的节点,把该节点的两个子节点和他们所在的层数作为参数进行函数调用。当前节点为空时直接返回程序。

代码:

List<List<Integer>> listSum=new ArrayList<>();public List<List<Integer>> levelOrder(TreeNode root) {next(root,0);return listSum;}public void next(TreeNode root,int level){if(root==null){return ;}List<Integer> list;if(listSum.size()>level){list=listSum.get(level);}else{list=new ArrayList<>();listSum.add(list);}list.add(root.val);next(root.left,level+1);next(root.right,level+1);listSum.set(level,list);}


http://www.ppmy.cn/news/1562575.html

相关文章

基于springboot的医药管理系统源码+论文+开题报告

系统介绍 系统中包含论文和开题报告 今的年代,已经是步入信息社会了,不仅信息更新速度频繁,信息量也大,在信息时代必须有相应的处理信息的方法,如果还采用以前的结绳记事或者笔写纸记,不仅是信息录入效率上赶不上节奏,在信息检索的速度上更是让人无法承受。幸而当今社会…

索引页与B+树的关系

在数据库管理系统中&#xff0c;索引是优化查询性能的核心机制。B树作为一种高效索引结构&#xff0c;与索引页的关联至关重要。下面将详细解释它们之间的关系&#xff1a; 索引页&#xff08;Index Page&#xff09; 索引页是数据库中磁盘块&#xff08;Block&#xff09;的一…

03-51单片机定时器和串口通信

一、51单片机定时器 1.定时器介绍 1.1为什么要使用定时器 在前面的学习中&#xff0c;用到了 Delay 函数延时&#xff0c;这里学习定时器以后&#xff0c;就可以通过定时器来完成&#xff0c;当然定时器的功能远不止这些&#xff1a; 51 单片机的定时器既可以定时&#xff…

【Word_笔记】Word的修订模式内容改为颜色标记

需求如下&#xff1a;请把修改后的部分直接在原文标出来&#xff0c;不要采用修订模式 步骤1&#xff1a;打开需要转换的word后&#xff0c;同时按住alt和F11 进入&#xff08;Microsoft Visual Basic for Appliations&#xff09; 步骤2&#xff1a;插入 ---- 模块 步骤3&…

Python AI教程之十六:监督学习之决策树(7)和其它算法的比较

ML | 逻辑回归与决策树分类 逻辑回归和决策树分类是目前最流行和最基本的两种分类算法。没有哪种算法比另一种更好,而一种算法的优越性通常归功于所处理数据的性质。 我们可以在不同类别上比较这两种算法—— 标准 逻辑回归 决策树分类 可解释性 难以解释 更易于解释 决策…

四种常见的身份认证与授权机制

在现代 web 应用开发中&#xff0c;安全的身份认证和授权机制对于确保数据安全和访问控制至关重要。本文将探讨四种常见的机制&#xff1a;JWT&#xff08;JSON Web Tokens&#xff09;、Session&#xff08;会话&#xff09;、SSO&#xff08;单点登录&#xff09; 和 OAuth 2…

当Elasticsearch索引数据量过多时,可以采取以下措施进行优化和部署

调整索引分片数量&#xff1a;根据数据量和集群规模&#xff0c;重新分配索引的分片数量。较小的索引分片可以提高查询性能&#xff0c;但过多的分片也会增加管理开销。因此&#xff0c;需要根据具体情况进行权衡。调整副本数量&#xff1a;根据数据量和查询负载&#xff0c;适…

《零基础Go语言算法实战》【题目 2-5】函数参数的值传递和引用传递

《零基础Go语言算法实战》 【题目 2-5】函数参数的值传递和引用传递 下面代码的输出是什么&#xff1f; package main import "fmt" type Test struct { array []int str string } func asign(t Test) { t.array[0] 88 t.str "Go is good" } func ma…