队列--二叉树层序遍历
/*1/ \2 3/\ /\4 5 6 7利用LinkedListQueue1. 头 [1] 尾12.头 [2 3] 尾1 23.头 [3 4 5] 尾1 24.头 [4 5 6 7] 尾1 2 35.头 [] 尾1 2 3 4 5 6 7*/
代码:
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> result = new ArrayList<>();if(root == null) {return result;}LinkedListQueue<TreeNode> queue = new LinkedListQueue<>();queue.offer(root);int c1 = 1; // 本层节点个数while (!queue.isEmpty()) {int c2 = 0; // 下层节点个数List<Integer> level = new ArrayList<>();for (int i = 0; i < c1; i++) {TreeNode node = queue.poll();level.add(node.val);if (node.left != null) {queue.offer(node.left);c2++;}if (node.right != null) {queue.offer(node.right);c2++;}}c1 = c2;result.add(level);}return result;}// 自定义队列static class LinkedListQueue<E> {private static class Node<E> {E value;Node<E> next;public Node(E value, Node<E> next) {this.value = value;this.next = next;}}private final Node<E> head = new Node<>(null, null);private Node<E> tail = head;int size = 0;private int capacity = Integer.MAX_VALUE;{tail.next = head;}public LinkedListQueue() {}public LinkedListQueue(int capacity) {this.capacity = capacity;}public boolean offer(E value) {if (isFull()) {return false;}Node<E> added = new Node<>(value, head);tail.next = added;tail = added;size++;return true;}public E poll() {if (isEmpty()) {return null;}Node<E> first = head.next;head.next = first.next;if (first == tail) {tail = head;}size--;return first.value;}public E peek() {if (isEmpty()) {return null;}return head.next.value;}public boolean isEmpty() {return head == tail;}public boolean isFull() {return size == capacity;}}
}
相关文章:
队列--二叉树层序遍历
/*1/ \2 3/\ /\4 5 6 7利用LinkedListQueue1. 头 [1] 尾12.头 [2 3] 尾1 23.头 [3 4 5] 尾1 24.头 [4 5 6 7] 尾1 2 35.头 [] 尾1 2 3 4 5 6 7*/ 代码: class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List&l…...
Ceph入门到精通-Linux内核网络参数优化小结
tcp建连优化 1 tcp建连,降低客户端超时时间 net.ipv4.tcp_syn_retries 6 2 tcp建连,服务端避免syn攻击 netstat -s | grep "SYNs to LISTEN" 1192450 SYNs to LISTEN sockets dropped 可以考虑增大syn队列 net.ipv4.tcp_max_syn_backlo…...
AWK语言第二版 2.6个人库 2.7小结
2.6 个人库 Awk提供了适量的内置函数库,如 length、sub、substr、printf 等其他十来个;在A.2.1节的参考手册中都有列出。你可以自己创建更多函数,以便有需要时引入到Awk程序中。比如内置库函数 sub 和 gsub 都只能返回替换的次数,…...
8年经验之谈 —— Web ui自动化测试框架总结!
实施过了web系统的UI自动化,回顾梳理下,想到什么写什么,随时补充。 首先,自动化测试不是手动测试的替代品,是比较好的补充,而且不是占大比重的补充。 70%的测试工作集中在底层接口测试和单元测试࿰…...
Kafka在企业级应用中的实践
前言 前面说了很多Kafka的性能优点,有些童鞋要说了,这Kafka在企业开发或者企业级应用中要怎么用呢?今天咱们就来简单探究一下。 1、 使用 Kafka 进行消息的异步处理 Kafka 提供了一个可靠的消息传递机制,使得企业能够将不同组件…...
使用企业订货系统后的效果|软件定制开发|APP小程序搭建
使用企业订货系统后的效果|软件定制开发|APP小程序搭建 企业订货系统是一种高效的采购管理系统,它可以帮助企业更好地管理采购流程,降低采购成本,提高采购效率。 可以帮助企业提高销售效率和降低成本的软件工具。使用该系统后,企业…...
STL关联式容器set,multiset,pair,map
set容器是一个集合容器。包含元素是唯一的。集合元素按照一点顺序排列,元素插入过程是顺序插入,所有不能插入指定位置。 set采用红黑树变体的数据结构实现。红黑树属于平衡二叉树。再插入和删除上比vector快。 set不能直接存取元素(不能用a…...
MFC文本输出学习
void CTxttstView::OnDraw(CDC* pDC) {CTxttstDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;pDC->SetBkColor(RGB(0,0,0));pDC->TextOut(50, 50, "一段文字");pDC->SetBkColor(RGB(255,255,255))…...
Python 数据分析与挖掘(一)
Python 数据分析与挖掘(数据探索) 数据探索 1.1 需要掌握的工具(库) 1.1.1 Nump库 Numpy 提供多维数组对象和各种派生对象(类矩阵),利用应用程序接口可以实现大量且繁琐的数据运算。可以构建…...
【问题证明】矩阵方程化为特征值方程求得的特征值为什么是全部特征值?不会丢解吗?
问题 这个问题困扰了我好久,一直感觉如果有其他的特征值没法证伪,不过一直存在思想的层面,没有实际解决,今天突然想到动笔来解决,遂得解,证明如下。 证明 总结 这个证明看似证明过后很直观,但…...
虹科干货 | 不是吧,Redis Enterprise也能当向量数据库来用?
什么是向量相似性搜索啊? 例如,你需要搜索一棵发财树的图片,如果用传统数据库来检索,你大概率会在茫茫树丛中错失心仪的发财树。但是,向量相似性搜索能用向量来表示所有树的特征,这样就能够通过计算向量之间…...
汽车驾驶 - 四梁六柱是什么
汽车的四梁六柱指的是车辆的两个前纵梁,两个后纵梁和ABC柱。虽然不像车辆上的发动机变速箱这些部件出镜率那么高,但这几个部位的重要作用可一点都不含糊。一辆车在碰撞时能够受力起到保护左右的就是四梁六柱,对我们汽车的安全性起到至关重要的…...
CI522 13.56MHZ电动车NFC测试资料
Ci522是一颗工作在13.56MHz频率下的非接触式读写芯片,支持读A卡(CI523支持读A/B卡),可做智能门锁、电动车NFC一键启动、玩具NFC开锁等应用。为部分要求低成本,PCB小体积的产品提供了可靠的选择。 Ci522与Si522/MFRC52…...
【微信小程序开发】一文学会使用CSS样式布局与美化
引言 在微信小程序开发中,CSS样式布局和美化是非常重要的一部分,它能够为小程序增添美感,提升用户体验。本文将介绍如何学习使用CSS进行样式布局和美化,同时给出代码示例,帮助开发者更好地掌握这一技巧。 一、CSS样式布…...
漏刻有时物联网环境态势感知大数据(设备列表、动态折线图)
物联网环境下的态势感知是指对物联网环境中的各种要素进行全面、实时、准确的监测、分析和预测,以实现网络态势的全面掌握和安全威胁的及时响应和处理。具体而言,态势感知以物联网环境为基础,利用各类传感器、数据采集设备和其他相关工具,对物联网设备、资产、数据流等进行…...
【力扣】单调栈:901. 股票价格跨度
【力扣】单调栈:901. 股票价格跨度 文章目录 【力扣】单调栈:901. 股票价格跨度1. 题目介绍2. 思路3. 解题代码参考 1. 题目介绍 设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格…...
4_使用预训练模型 微调训练CIFAR10
使用预训练模型 微调训练CIFAR10 1. VGG 准备工作import torch from torch import nn import torchvision from torchvision import models from torchvision import datasets, transforms from datetime import datetime from tqdm import tqdm from torchsummary import sum…...
机器学习笔记(一)
1.线性回归模型 2. 损失函数 3.梯度下降算法 多元特征的线性回归 当有多个影响因素的时候,公式可以改写为: 当有多个影响因素的时候为了方便计算,可以使用 Numpy下面的点积方法, np.dot(w,x) 最后再加个b 就省略了很多书写步骤,这叫做矢量化 多元回归的梯度下降 左边是一…...
学习在原地打转的原因与解决 如何步步为营 一日千里快速进步 考研工程计算 1万小时=416.666666667 天
学习在原地打转的原因可能有很多。以下是一些常见的原因: 缺乏明确的目标:如果没有明确的学习目标,人们往往会感到迷失和困惑。没有一个明确的方向,就很难做出有针对性的努力,从而导致学习进展缓慢。 学习方法不当&a…...
194、SpringBoot --- 下载和安装 Erlang 、 RabbitMQ
本节要点: 一些命令: 小黑窗输入: rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗: rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问 htt…...
GitLab实战:如何用rebase -i优雅合并多个commit(附常见错误排查)
Git提交历史优化:交互式rebase高阶操作指南 1. 为什么需要整理Git提交历史 在团队协作开发中,我们经常会遇到提交历史杂乱无章的情况。想象一下这样的场景:你完成了一个新功能的开发,但在这个过程中产生了十几个零散的提交记录&am…...
LightGBM实战:极速梯度提升框架的多变量时序预测深度解析
LightGBM实战:极速梯度提升框架的多变量时序预测深度解析 【免费下载链接】LightGBM microsoft/LightGBM: LightGBM 是微软开发的一款梯度提升机(Gradient Boosting Machine, GBM)框架,具有高效、分布式和并行化等特点,…...
嵌入式NTP客户端高精度时间同步实现
1. NTP客户端库深度解析:嵌入式系统中的高精度时间同步实现1.1 项目背景与工程痛点NTP(Network Time Protocol)是嵌入式设备实现网络时间同步的核心协议。在工业控制、数据采集、日志记录等场景中,毫秒级甚至亚毫秒级的时间精度直…...
CAPL实战指南:如何构建并发送带计数器的自定义周期报文
1. 为什么需要带计数器的周期报文 在汽车电子测试中,模拟ECU通信是最基础也最频繁的需求之一。想象一下,你正在测试一个车载娱乐系统,需要验证它能否正确处理来自其他ECU的周期性状态更新。这时候,如果只是发送固定内容的报文&…...
Hunyuan3D-2:AI驱动3D创作的4大技术突破
Hunyuan3D-2:AI驱动3D创作的4大技术突破 【免费下载链接】Hunyuan3D-2 High-Resolution 3D Assets Generation with Large Scale Hunyuan3D Diffusion Models. 项目地址: https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2 Hunyuan3D-2是一款基于大规模扩…...
ESP32-C3实战:低功耗WiFi与BLE信号扫描及JSON数据上报方案
1. ESP32-C3双模信号扫描方案设计 ESP32-C3作为乐鑫推出的RISC-V架构物联网芯片,其内置的WiFi 4和BLE 5.0双模射频模块非常适合环境信号监测场景。在实际项目中,我经常用它来构建智能家居信号质量分析仪、商场客流监测终端等设备。相比传统方案需要外接…...
ESP32 Arduino核心架构解析:高性能物联网开发框架深度指南
ESP32 Arduino核心架构解析:高性能物联网开发框架深度指南 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 ESP32 Arduino核心项目为物联网开发者提供了基于Arduino框架的ESP32…...
纯本地运行!LiuJuan Z-Image Generator隐私安全,生成高质量图片
纯本地运行!LiuJuan Z-Image Generator隐私安全,生成高质量图片 想找一个既保护隐私,又能稳定生成高质量图片的AI工具吗?今天介绍的LiuJuan Z-Image Generator,可能就是你的理想选择。它最大的特点,就是“…...
yfinance终极指南:5分钟掌握免费金融数据获取
yfinance终极指南:5分钟掌握免费金融数据获取 【免费下载链接】yfinance Download market data from Yahoo! Finances API 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance 在金融分析和量化投资领域,高质量的数据是一切分析的基础。…...
从轮胎变形到车辆漂移:深入浅出聊聊自动驾驶横向控制里的‘侧偏刚度’
轮胎侧偏刚度:自动驾驶横向控制中的隐形弹簧 想象一下在高速公路上以120km/h的速度变道时,方向盘只需轻轻转动几度——这种看似反直觉的操控背后,是轮胎侧偏刚度在默默发挥着作用。就像跳水运动员入水时水面产生的弹性变形一样,轮…...
