力扣算题【第二期】

文章目录

        • 1.反转链表
          • 1.1 算法题目
          • 1.2 算法思路
          • 1.3 代码实现
        • 2.回文链表
          • 2.1 算法题目
          • 2.2 算法思路
          • 2.3 代码实现

1.反转链表
1.1 算法题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
在这里插入图片描述

1.2 算法思路

1.设置工作指针p,来遍历链表。
2.采用头插法的方法来实现链表翻转。

1.3 代码实现
class Solution {public ListNode reverseList(ListNode head) {ListNode p,q;p=head.next;head.next=null;while(p!=null){q=p.next;p.next=head.next;head.next=p;p=q;}return head;}
}
2.回文链表
2.1 算法题目

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
在这里插入图片描述

2.2 算法思路

1.设置快慢指针,当快指针到达链表的末尾时,慢指针正好在链表的中间后者下一个位置。
2.通过翻转链表使得slow指针指向翻转后链表的第一个元素。同时将fast指针也指向当前链表的第一个指针。
3.通过循环判断slow指针和fast指针指向的值是否相同。

2.3 代码实现
class Solution {public boolean isPalindrome(ListNode head) {ListNode fast=head,slow=head;while(fast!=null&&fast.next!=null){fast=fast.next.next;slow=slow.next;}if(fast!=null){  //奇数链表slow=slow.next;}fast=head;slow=reverse(slow);while(slow!=null){if(fast.val!=slow.val){return false;}fast=fast.next;slow=slow.next;}return true;}//翻转链表public ListNode reverse(ListNode head){ListNode pre=null;while(head!=null){ListNode next=head.next;head.next=pre;pre=head;head=next;}return pre;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JD Edwards 怎么编写和测试BSSV

BSSV对象发布到本地服务器 提示:只针对BSSV 程序名J开头的程序本地编写和发布测试 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 BSSV对象发布到本地服务器前言一、J程序有什么作用?二、1…

数学算法(算法竞赛、蓝桥杯)--分解质因数、唯一分解定理

1、B站视频链接&#xff1a;G07 分解质因数 唯一分解定理 试除法_哔哩哔哩_bilibili 题目链接&#xff1a;质因子分解 - 洛谷 #include <bits/stdc.h> using namespace std;int n; int a[100010];//质因子的个数void decompose(int x){for(int i2;i*i<x;i){//i增加&a…

每日必学Linux命令:mv命令

mv命令是move的缩写&#xff0c;可以用来移动文件或者将文件改名&#xff08;move (rename) files&#xff09;&#xff0c;是Linux系统下常用的命令&#xff0c;经常用来备份文件或者目录。 一&#xff0e;命令格式&#xff1a; mv [选项] 源文件或目录 目标文件或目录二&am…

Redis入门到实战-第十四弹

Redis实战热身Hyperloglogs篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、消息…

内网端口如何映射到外网?

内网端口映射到外网是一项重要的网络技术&#xff0c;它可以实现在任何网络环境下远程访问和管理内网设备。在复杂的网络环境中&#xff0c;内网设备通常无法直接被外网访问&#xff0c;而内网端口映射技术可以解决这个问题。本文将介绍一种名为【天联】的组网产品&#xff0c;…

微信小程序订阅消息(一次性订阅消息)

1、准备工作 登录微信公众平台–>订阅消息–>在公共模板库中选中一个模版–>将模版id复制&#xff0c;前后端都需要。 点击详情–>查看详细内容模版 复制给后端 2、相关api的使用 前端使用&#xff1a;wx.requestSubscribeMessage wx.openSetting wx.getSetti…

16:00面试,16:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

通过枚举替换if-else语句的解决方案

在头条上看到的一个博主的视频&#xff0c;自己敲代码记录下&#xff01; 定义接口 /*** 吃** author huangzheng* date 2024/03/26*/ public interface Eat {/*** 吃 方法*/void eat(); }定义实现类 /*** 动物枚举** author huangzheng* date 2024/03/26*/ public enum Anim…

Vue.js 3.4的新特性

Vue.js 3.4的新特性 目前&#xff0c;Vue.js的版本已经更新到3.4&#xff0c;这次更新不仅带来了性能上的飞跃&#xff0c;还引入了许多新特性&#xff0c;进一步优化了开发效率。 1. 性能提升 在性能方面&#xff0c;Vue.js 3.4 全新重写了模板解析器。与之前基于正则表达式…

openssl 升级1.1.1.1k 到 3.0.13

下载 https://www.openssl.org/source/ tar -zxvf openssl-3.0.13.tar.gzcd openssl-3.0.13/./config enable-fips --prefix/usr/local --openssldir/usr/local/opensslmake && make install 将原有openssl备份 mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/i…

unity小:使用Unity FBX Exporter 将 3DMax场景或者模型无损导入Unity

本指南旨在帮助您顺利安装和配置Unity FBX Exporter插件&#xff0c;并解决相关的常见问题。 安装 FBX Exporter 下载并安装FBX Exporter插件。 打开Unity&#xff0c;选择 Edit > Project Settings > Fbx Export。 点击 Install Unity Integration 并选择3ds Max的插…

[深度学习]yolov8+streamlit搭建精美界面GUI网页设计源码实现三

【设计思路介绍】 为了使用YOLOv8和Streamlit搭建一个精美的界面GUI网页&#xff0c;你需要遵循几个关键步骤。以下是一个简化的流程&#xff0c;帮助你设计并实现这一目标&#xff1a; 1. 环境准备 安装YOLOv8 YOLOv8是一个先进的实时目标检测模型。你需要先下载并安装YOL…