【力扣热题100】—— Day5.回文链表

正视自己的懦弱和无能,克服自己的嫉妒与不甘

                                                                        —— 24.12.3

234. 回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为

回文链表

。如果是,返回 true ;否则,返回 false 。

示例 1:

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

示例 2:

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

提示:

  • 链表中节点数目在范围[1, 105] 内
  • 0 <= Node.val <= 9

进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

方法一 存入数组双指针

        如果单纯的在数组中判断回文数,我们只需定义两个指针,指针1指向数组头结点的位置,指针2指向数组中最后一个元素的位置,遍历迭代指针1和指针2,首先遍历一遍链表,将链表的节点都存入数组中,回文数的定义是从前到后和从后向前占总长度各一半,并且元素值按序相同,所以我们进行遍历迭代指针1和指针2,如果发现二者不相等,则返回false,证明该链表不是回文链表,直到遍历完一遍,中途没有停止返回false,则该链表为回文链表


Java实现

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public boolean isPalindrome(ListNode head) {List<Integer> arr = new ArrayList<Integer>();ListNode pre = head;while(pre != null){arr.add(pre.val);pre = pre.next;}int front = 0;int back = arr.size() - 1;while(front < back){if(!arr.get(front).equals(arr.get(back))){return false;}front++;back--;}return true;}
}


Python实现

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def isPalindrome(self, head: Optional[ListNode]) -> bool:arr = []while head is not None:arr.append(head.val)head = head.nextreturn arr == arr[::-1]

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

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

相关文章

什么是大数据、有什么用以及学习内容

目录 1.什么是大数据&#xff1f; 1.1大数据的类型 1.2大数据的来源 1.3大数据处理的挑战 1.4大数据的核心技术 2.大数据有什么用&#xff1f; 2.1商业与营销&#xff1a; 2.2医疗与健康&#xff1a; 2.3金融服务&#xff1a; 2.4政府与公共服务&#xff1a; 2.5交通…

Docker 安装 中文版 GitLab

Docker 安装系列 安装GitLab、解决服务器内存不足问题、使用域名/IP地址访问项目 1、拉取 [rootTseng ~]# docker pull twang2218/gitlab-ce-zh:latest latest: Pulling from twang2218/gitlab-ce-zh 8ee29e426c26: Pull complete 6e83b260b73b: Pull complete e26b65fd11…

分布式数据库环境(HBase分布式数据库)的搭建与配置

分布式数据库环境&#xff08;HBase分布式数据库&#xff09;的搭建与配置 1. VMWare安装CentOS7.9.20091.1 下载 CentOS7.9.2009 映像文件1.2启动 VMware WorkstationPro&#xff0c;点击“创建新的虚拟机”1.3在新建虚拟机向导界面选择“典型&#xff08;推荐&#xff09;”1…

ssh连接工具

我们未来接触到的linux系统一般情况下是没有界面&#xff08;桌面环境&#xff09;&#xff0c;我们一般会在自己工作的电脑上&#xff0c;通过相关ssh工具&#xff0c;利用网络连接到远程的你的服务器上。连接工具有很多&#xff1a;mobaxterm、xshell/xftp、putty等等 mobaxt…

苹果 ATS 配置SSL证书

Apple的App Transport Security (ATS) 是一项安全机制&#xff0c;旨在确保iOS和macOS应用的网络通信使用HTTPS加密。自iOS 9和OS X 10.11以来&#xff0c;默认情况下所有网络请求都必须使用HTTPS&#xff0c;除非明确允许非HTTPS连接。 在2017年1月1日之前&#xff0c;开发者可…

安卓逆向之对抗Anti-Frida学习

基础补充 什么是 Anti-Frida 保护&#xff1f; Anti-Frida保护是指在移动应用或程序中采用的一种安全技术或防护机制&#xff0c;旨在防止或干扰Frida等动态分析工具的注入与使用。 Anti-Frida保护常见技术 有哪些&#xff1f; 检测frida-agent.so的注入 &#xff1a; Fr…

安全架构评审

安全架构评审 1.概述2.安全设计原则3.美团安全架构评审模型安全需求分析架构review攻击面分析和威胁建模攻击面分析威胁列表 1.概述 完整的安全评审会包含安全架构评审、安全代码审核和安全测试三个手段 安全架构评审聚焦于探寻安全设计中的漏洞&#xff0c;以宏观视野全面考…

迎接国庆,我上线了第一款小程序

最近花了些时间&#xff0c;写了一个 “国庆头像” 小程序。正好快国庆节了&#xff0c;于是分享一下我的这个 “Starstick星点贴纸” 小程序&#xff0c;顺便简单讲讲以及其中的设计、开发、上线过程。 小程序的界面是这样的&#xff1a; &#x1f52e;背景 今年中秋前夕&am…

房产销售系统

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于房产销售系统当然也不能排除在外&#xff0c;随着网络技术的不…

开发一套ERP 第二个生产版本

库存管理第一个生产版本 Okay 进入测试 嘿嘿,搞完了,剩下的就是细测慢调了 下一版本可以内置sqlite 数据库来操作这些数据表,sqlite 也支持 trigger 的功能

Weiss 机器人电动夹爪,重塑工业自动化精密操作

在当今的自动化进程里&#xff0c;Weiss高精密电动夹爪扮演着重要的角色。Weiss公司位于德国&#xff0c;其精心研制的高精密电动夹爪专为工业机器人与协作机器人打造。 Weiss 高精密电动夹爪的控制方式独具特色&#xff0c;与传统的一些夹爪相比&#xff0c;Weiss电动夹爪在处…

【JVM虚拟机】面试经典八股文(应届生必看)

目录 1.JDK、JRE、JVM三者关系&#xff1f; 2.谈谈JVM的理解&#xff1f; 3.JVM执行字节码的过程&#xff1f;&#xff08;执行方式&#xff09; 4.JVM的组成是什么&#xff1f; 5.什么是类加载机制&#xff1f; 6.什么是双亲委派模型&#xff1f; 7.JVM内存模型 8.堆区的…

Android 实现中英文切换

在开发海外项目的时候&#xff0c;需要实现app内部的中英文切换功能&#xff0c;所有的英文都是内置的&#xff0c;整体思路为&#xff1a; 创建一个sp对象&#xff0c;存储当前系统的语言类型&#xff0c;然后在BaseActivity中对语言进行判断&#xff1b; //公共Activitypubl…

Qt-练习1(事件循环)

一、练习要求 1、使用QT的IO读取文件&#xff1b; 2、以QSlider为基础&#xff0c;写一个进度条&#xff0c;显示文件读取的进度&#xff1b; 3、给QSlider布置qss样式&#xff0c;qss文件像css文件一样&#xff0c;分离出来。 二、源码 全部源码 源码目录&#xff1a; 1.1 、m…

解决Clang 18+不能链接GCC14编译的库的问题

前面笔者的博文MSYS2 MinGW64使用Protobuf新版本踩坑&#xff0c;有提到使用最新的Clang 19.1.4版本在MinGW下无法正常链接使用了Protobuf 28.3的项目&#xff0c;因为MinGW下的项目默认都是使用GCC来编译的&#xff0c;所以如果开发者使用Clang编译器&#xff0c;必然会出现链…

城市内涝监测预警系统解决方案-智慧排水

成因分析 气候变化 受全球气候变暖导致大气水循环加快&#xff0c;环流不稳定性增加&#xff0c;进一步引发极端降雨事件受城市热岛效应、雨岛效应的影响,强降雨常集中于城市且雨量多&#xff0c;强度大且雨量多。 排水系统不完善 城市发展快&#xff0c;城市防洪排涝工程&a…

Python:使用随机森林分类器进行模型评估:ROC 曲线与 AUC 指标计算

前言 这段代码的目标是使用 随机森林分类器&#xff08;Random Forest Classifier&#xff09; 来进行二分类任务&#xff0c;并基于每个数据子集计算 ROC 曲线&#xff08;Receiver Operating Characteristic Curve&#xff09;以及 AUC&#xff08;Area Under Curve&#xf…

【JAVA练习】力扣1232.缀点成线

题目&#xff1a; 解题思路&#xff1a; 直线上面的点满足公式&#xff1a;&#xff0c; 如果所有点在一条直线上&#xff0c;即任意两点的斜率相同&#xff0c;由于计算斜率存在精度的问题&#xff0c;可以将除法等价于乘法。 等价于 class Solution {public boolean che…

【SKFramework框架核心模块】3-12、网络请求模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

C# 反射(Reflection)

文章目录 前言一、反射的优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 二、反射的用途&#xff08;一&#xff09;查看特性&#xff08;attribute&#xff09;信息&#xff08;二&#xff09;审查集合中的各种类型并实例化&#xff08;三&#xff09;实…