LCR 123. 图书整理 I

news/2024/12/22 7:21:33/

算法题:

第一遍:1.看5分钟,没思路看题解

2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。

3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法)

4.整理到自己的自媒体平台。

5.再刷重复的类似的题目,根据时间和任务安排刷哪几个板块

6.用c++语言 都刷过一遍了 就刷中等

一.题目

书店店员有一张链表形式的书单,每个节点代表一本书,节点中的值表示书的编号。为更方便整理书架,店员需要将书单倒过来排列,就可以从最后一本书开始整理,逐一将书放回到书架上。请倒序返回这个书单链表。

示例 1

输入:head = [3,6,4,1]输出:[1,4,6,3]

提示:

0 <= 链表长度 <= 10000

二、反思

1.自己的解法

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:vector<int> reverseBookList(ListNode* head) {ListNode* cur=head;ListNode* pre=nullptr;vector <int> res;while (cur){ListNode* next =cur->next;cur->next=pre;pre =cur;cur = next;}while (pre){res.push_back(pre->val);pre=pre->next;}return res;}
};

2.题目的解法 

class Solution {
public:vector<int> reverseBookList(ListNode* head) {stack<int> stk;while(head != nullptr) {stk.push(head->val);head = head->next;}vector<int> res;while(!stk.empty()) {res.push_back(stk.top());stk.pop();}return res;}
};作者:Krahets
链接:https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/solutions/97270/mian-shi-ti-06-cong-wei-dao-tou-da-yin-lian-biao-d/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。class Solution {
public:vector<int> reverseBookList(ListNode* head) {recur(head);return res;}
private:vector<int> res;void recur(ListNode* head) {if(head == nullptr) return;recur(head->next);//递归的本质就是一个栈,先进后出。res.push_back(head->val);}
};作者:Krahets
链接:https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/solutions/97270/mian-shi-ti-06-cong-wei-dao-tou-da-yin-lian-biao-d/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 3.思路的异同

因为这几天一直在刷反转链表的题目,所以就惯性思维了。但是这个题目与平常的反转链表相比,返回的是一个容器。

第二个例子说明,递归的本质就是一个栈,先进后出。太优雅了。

三.进步的地方

 题目中选择使用辅助栈的方法,借用栈天生的先进后出实现反转。

同时也学到了怎么使用栈的pop、empty、top等关键字。


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

相关文章

数据结构链表

数据结构链表 链表 1&#xff09;链表的概念及结构: 链表是一种物理存储结构上非连续存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的。 2&#xff09;实际中链表的结构非常多样&#xff0c;以下情况组合起来就有8种链表结构&#xff1a; 单向、双向…

Stable Diffusion学习记录

文章目录 前言电脑配置推荐环境搭建下载地址安装步骤步骤一&#xff0c;打开下载的秋叶整合包&#xff0c;路径秋叶整合包/sd-wenui-aki步骤二&#xff0c;打开下载好的sd-webui-aki-v4.8.7解压包 Stable Diffusion软件配置&#xff0c;插件安装&#xff0c;模型下载Stable Dif…

未授权访问

未授权访问是系统对用户限制不全&#xff0c;或者无限制&#xff0c;可以让任意用户或者限制访问用户&#xff0c;访问到需要权限认证的地址。未授权访问通常是会泄露用户信息&#xff0c;系统信息。某些服务和系统中&#xff0c;未授权访问还可以执行系统命令&#xff0c;操作…

OPENAI中Assistants API的实现原理及示例代码python实现

OPENAI中Assistants API的实现原理及示例代码 前言 OPENAI是一家人工智能公司&#xff0c;致力于研究和开发人工智能技术。其中&#xff0c;Assistants API是OPENAI推出的一项人工智能服务&#xff0c;可以帮助开发者快速构建智能助手。本文将介绍Assistants API的实现原理&a…

Retrofit库中,Call​;Retrofit使用举例;@GET,@PUT区别;

目录 在Retrofit库中,Call​ Retrofit使用举例 Call> listRepos(@Path("user") String user); Call是什么:

CVPR2024论文整理及最新算法整理

CVPR 2024 | 腾讯优图实验室20篇论文入选&#xff0c;含图文多模态大模型、高分辨视觉分割、跨模态生成、人脸识别等研究方向-腾讯云开发者社区-腾讯云 (tencent.com) CVPR2024满分论文出炉&#xff01;分割万物再次火爆AI界-CSDN博客 【综述】三维点云深度学习算法综述,sota…

Spring 如何解决 Bean 循环依赖

循环依赖解释 bean A 属性注入时依赖bean B &#xff0c;并且bean B属性注入时也依赖bean A &#xff0c;造成 bean A 和bean B 都无法完成初始化问题&#xff0c;形成了闭环。 注意 项目中存在Bean的循环依赖&#xff0c;是Bean对象职责划分不明确、代码质量不高的表现&#…

【大数据】学习笔记

文章目录 [toc]NAT配置IP配置SecureCRT配置PropertiesTerminal Java安装环境变量配置 Hadoop安装修改配置文件hadoop-env.shyarn-env.shslavescore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 环境变量配置 IP与主机名映射关系配置hostname配置映射关系配置 关闭防火墙…