在O(n) 时间复杂度,O(1)空间复杂度内反转单链表

简介:

在LeetCode中看到判断回文的程序:https://leetcode.com/problems/palindrome-linked-list/

里面用单链表来存储数据,先反转前半部分的单链表,然后分别从 表头 和 中间链表位置处 开始比较元素。

 

反转单链表的代码如下:

复制代码
 1      private ListNode reverseList(ListNode head, int length){
 2          if(head == null)  3 return null;  4  ListNode currentNode, preNode;  5 currentNode = preNode = head;  6 ListNode nextNode = head.next;  7 head.next = null;  8 for(int i = 1; i < length; i++){  9 if(nextNode != null){ 10 currentNode = nextNode; 11 nextNode = nextNode.next; 12 currentNode.next = preNode; 13 preNode = currentNode; 14  } 15  } 16 return currentNode; 17 }
本文转自hapjin博客园博客,原文链接:http://www.cnblogs.com/hapjin/,如需转载请自行联系原作者
相关文章
|
11月前
|
搜索推荐 安全 API
电商 API:开启电商新时代的关键钥匙
电商 API 是连接不同软件系统的桥梁,从 20 世纪 90 年代起,随着电子商务的兴起而不断发展。它最初用于提供商品信息,如今已扩展到订单处理、支付、物流跟踪和数据分析等功能,极大地提升了用户体验和业务效率。未来,电商 API 将结合人工智能、大数据和移动技术,进一步推动电商行业的创新与发展。
电商 API:开启电商新时代的关键钥匙
|
机器学习/深度学习 人工智能 文字识别
Python常用验证码标注和识别(需求分析和实现思路)
Python常用验证码标注和识别(需求分析和实现思路)
229 0
|
存储 NoSQL 网络协议
主从复制,Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit,1.主从模式如何指
主从复制,Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit,1.主从模式如何指
|
存储 编解码 算法
BackTrader 中文文档(十一)(3)
BackTrader 中文文档(十一)
296 0
|
小程序 开发者 Windows
【微信小程序】微信开发者工具 内容错误 pages/cart/cart.json: [“usingComonent“][“van-card“]: “@vant/weapp/card/indx“ 未找到
【微信小程序】微信开发者工具 内容错误 pages/cart/cart.json: [“usingComonent“][“van-card“]: “@vant/weapp/card/indx“ 未找到
278 0
|
存储 Java 编译器
Java异常到底是个啥——一次异常引发的思考
这篇文章主要通过三个部分阐释Java异常 - Java中异常的分类,异常的处理机制 - 异常的处理规范和实战,如何利用Springboot框架处理异常 - 从JVM的角度分析异常机制,包括`try-catch`, `try-finally`, `try-with-resource`的字节码分析
112 0
Java异常到底是个啥——一次异常引发的思考
|
人工智能 搜索推荐 大数据
互联网就业未来的前景
互联网就业未来的前景
266 1
|
Java 数据库 数据安全/隐私保护
推荐一款 IDEA 生成代码神器,写代码再也不用加班了!
Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。
|
Cloud Native
【刷题日记】70. 爬楼梯
本次刷题日记的第 10 篇,力扣题为:70. 爬楼梯 ,简单
107 0
|
存储 缓存 算法
手撕数据结构与算法-链表
链表也是线性表中的一种,数组是线性表中的顺序结构,而这次说的链表是线性表的链式存储结构,它在内存中是非连续、非顺序性的数据结构,由若干个节点组成。它每个节点中都会存储数据和下一个节点的地址,存储数据的叫做数据域,存储地址的叫做指针域。指针分为前驱指针、后继指针,分别用来记录前一个节点和后一个节点的位置。
115 0