9/4 链表-力扣 234、19

234.回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表;如果是,返回 true ;否则,返回 false

输入:head = [1,2,2,1]
输出:true

思考:链表遍历只能从前往后,为使能同时访问两端数据,创建一个列表去记录前部分数据

若只有一个节点,则直接返回true

将前部分值放入列表后,若有奇数个节点,则链表上的指针需再向后移一位;若为偶数个则不用

class Solution(object):def isPalindrome(self, head):""":type head: ListNode:rtype: bool"""if not head.next:return Truelength = 0p = headwhile p:length += 1p=p.nextmid = length // 2i = 0p = headl = []while i < mid:l.append(p.val)i += 1p = p.nextif length % 2 == 1:p = p.nexti = i - 1while p:if l[i] != p.val:return Falseelse:i -= 1p = p.nextreturn True

19、删除链表的倒数第N个节点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

 

示例 1:

输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1
输出:[]

示例 3:

输入:head = [1,2], n = 1
输出:[1]

思考:在链表中要删除哪个节点,就要去找它的前驱节点

1.当链表只有一个节点并且要删除倒数第一个节点时,直接返回空

2.当链表有n个节点要删除倒数第n个时,直接返回头节点的后续节点

3.last和pre同时指向头节点,用last节点先走n步,当该节点走到链尾时,pre节点即指向要删除节点的前驱节点

if not head.next and n == 1:return Nonep = headlen = 0while p:len += 1p = p.nextif len == n:return head.nextpre, last = head, headi = 0while i < n:last = last.nexti += 1while last.next:last = last.nextpre = pre.nextpre.next = pre.next.nextreturn head
 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】缓存击穿、缓存穿透、缓存雪崩原理以及多种解决方案

一、前言 在 Spring Cloud 微服务集群项目中&#xff0c;客户端的请求首先会经过 Nginx&#xff0c;Nginx 会将请求反向代理到 Gateway 网关层&#xff0c;接着才会将请求发送到具体的服务 service。 在 service 中如果要查询数据&#xff0c;则会到缓存中查询&#xff0c;如…

2024年最强图纸加密软件大揭秘!图纸加密软件推荐

在数字化时代&#xff0c;信息安全成为企业发展的重要保障&#xff0c;尤其是对于设计图纸等敏感数据的保护&#xff0c;选择一款可靠的图纸加密软件尤为重要。本文将为您推荐2024年十大图纸加密软件&#xff0c;帮助企业在日常工作中更好地保护知识产权和商业机密。 2024年最强…

宽带和带宽分不清楚

如何理解带宽 我们平时经常听到的带宽其实是宽带&#xff0c;举个栗子&#xff1a;我家用的是xx运营商提供的&#xff0c;号称1000M宽带&#xff0c;这其实指是的网络数据传输的速率是&#xff1a;1000Mbs&#xff08;即125MBps&#xff09;。 那么既然有宽带&#xff0c;就有…

OSS上传文件

注册阿里云账号 开通oss服务 创建accesskey和secret 进入oss选项&#xff0c;根据sdk开发代码

网站开发:XTML+CSS - 网页文档结构

1. 前言 HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是构建网页和 web 应用程序的标准标记语言。它定义了网页的结构和内容&#xff0c;允许开发者创建有组织、语义化的文档。 HTML 使用一系列的元素&#xff08;elements&#xff09;和…

如何轻松开启美股交易之旅?

你是否正在考虑进入美股市场&#xff0c;却不知道从哪里开始&#xff1f;“如何投资美股”的具体步骤和技巧&#xff0c;你是否已经掌握&#xff1f; 掌握美股交易时间与规则 1. 美股交易时间&#xff1a;灵活安排交易计划的基础 如何投资美股&#xff1f;首先&#xff0c;你…

简单的java调动远程服务器shell脚本

简单的java调动远程服务器shell脚本 1.需求 我们想要在我们的xxl-job中调用一个定时任务&#xff0c;固定时间频率去调用另一个服务器的shell脚本&#xff0c;进行数据批量的处理&#xff0c;整体需求逻辑非常简单&#xff0c;此处记录一下java调用shell脚本部分&#xff0c;…

Redis应用(2)——Redis的项目应用(一)

/** * 雪花id的工具类 */ Slf4j public class SnowFlakeUtil { private static long workerId 0; private static long datacenterId 1; private static Snowflake snowflake IdUtil.getSnowflake(workerId,datacenterId); PostConstruct // 自动调用&#xff0c;在构造方法…

Python 与 Excel 图表自动化:让数据“会说话”

在数据驱动的时代&#xff0c;数据分析师、财务专家、销售经理们都离不开Excel——这个简单而强大的工具。而Excel图表是展现数据故事的不二之选。然而&#xff0c;手动创建图表不仅耗时&#xff0c;还容易出错。如何让这繁琐的工作变得简单&#xff1f;答案就是&#xff1a;Py…

网络安全服务基础Windows--第8节-DHCP部署与安全

DHCP协议理解 定义&#xff1a;DHCP&#xff1a;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff0c;是⼀个应⽤在局域⽹中的⽹络协议&#xff0c;它使⽤UDP协议⼯作。 67&#xff08;DHCP服务器&#xff09;和68&#xff08;DHCP客户端&#xff0…

如何在 Cursor IDE 中使用驭码CodeRider 进行 AI 编程?

驭码CodeRider 是极狐GitLab 公司自研发布的 AIGC 产品&#xff0c;可以用来进行 AI 编程和 DevOps 流程处理。本文分享如何在 Cursor 中使用驭码CodeRider。 Cursor 是近期比较火爆的一款 AI 代码编辑器&#xff0c;通过将 AI 能力引入软件研发来提升软件研发效率。而驭码Cod…

三级_网络技术_53_应用题

一、 请根据下图所示网络结构回答下列问题。 1.设备1应选用__________网络设备。 2.若对整个网络实施保护&#xff0c;防火墙应加在图中位置1~3的__________位置上。 3.如果采用了入侵检测设备对进出网络的流量进行检测&#xff0c;并且探测器是在交换机1上通过端口镜像方式…

CISAW认证涉及10个技术方向,到底哪个更适合您?

对于渴望在信息安全领域提升自己技能的你&#xff0c;CISAW&#xff08;信息安全保障人员&#xff09;认证无疑是一个理想的选择。 这项认证不仅适用于网络信息安全岗位的专业人员&#xff0c;还为那些寻求深化专业知识、提高职业竞争力的人士提供了宝贵的学习机会。 CISAW认…

【Linux】消息队列信号量

目录 消息队列 原理 接口 指令 信号量 概念 对于信号量理论的理解 信号量的操作 信号量的指令 消息队列 原理 消息队列提供了一个从一个进程向另外一个进程发送一个数据块的方法&#xff0c;每个数据块都有一个类型。对消息队列的的管理也是先描述&#xff0c;再组织…

开源网安引领AIGC+开发安全,智能防护铸就软件安全新高度

近日&#xff0c;国内网络安全领域知名媒体数说安全正式发布了《2024年中国网络安全市场100强》和《2024年中国网络安全十大创新方向》。开源网安凭借在市场表现力、资源支持力以及产品在AI方向的创新力上的优秀表现成功入选百强榜单&#xff0c;并被评为“AIGC开发安全”典型厂…

go发邮件的功能如何使用?新手必备的指南?

Go发邮件怎么实现发信功能&#xff1f;使用go发邮件的注意事项&#xff1f; 在这个数字化时代&#xff0c;电子邮件已成为我们日常沟通的重要工具。对于新手来说&#xff0c;掌握如何使用go发邮件功能是至关重要的。AokSend将详细介绍go发邮件的使用方法&#xff0c;帮助你快速…

分布式服务调用RPC框架复习

目录 1、Dubbo概念与架构 1.1 Dubbo简介 1.2 注册与发现流程图 1.3 Dubbo架构图 2、Dubbo调用流程 3、关于Dubbo 服务治理 3.1 Dubbo通信协议 3.2 序列化方式 3.3 负载均衡算法 4、Dubbo与Spring Cloud关系 4.1 相似之处 4.2 差异之处 5、Dubbo 与 gRPC 关系 6、…

【C/C++】web服务器项目开发总结【请求 | 响应 | CGI】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 一&#xff0c;背景 二&…

使用 Milvus 和 Streamlit 搭建多模态产品推荐系统

我们可以使用 Milvus 搭建多模态 RAG 应用&#xff0c;用于产品推荐系统。用户只需简单上传一张图片并输入文字描述&#xff0c;Google 的 MagicLens 多模态 Embedding 模型就会将图像和文本编码成一个多模态向量。然后&#xff0c;使用这个向量从 Milvus 向量数据库中找到最相…

C++设计模式——Template Method模板方法模式

一&#xff0c;模板方法模式的定义 模板方法模式是一种行为型设计模式&#xff0c;它先定义了一个算法的大致框架&#xff0c;然后将算法的具体实现步骤分解到多个子类中。 模板方法模式为算法设计了一个抽象的模板&#xff0c;算法的具体代码细节由子类来实现&#xff0c;从…