当前位置: 首页 > news >正文

leetcodetop100 (22) 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表

简单的用一个动态数组Arraylist记录,然后倒序遍历赋值给一个新的链表,这种空间复杂度是o(n),估计需要优化。

采用双指针;

我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。
第二个指针 cur 指向 head,然后不断遍历 cur。
每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 前进一位。
都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。

package TOP11_20;// 反转链表
//给你单链表的头节点 head ,请你反转链表,并返回反转后的链表
public class Top21 {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;}}public static ListNode reverseList(ListNode head) {//采用双指针ListNode pre = null;ListNode cur = head;// 有点难以理解 可以采用画图方式理解,第二个指针 cur 指向 head,然后不断遍历 cur。//每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 前进一位。//都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。while (cur!=null){ListNode temp = cur.next;cur.next = pre;pre = cur;cur = temp;}return pre;}
}

harryptter / LeetcodeTop100 · GitCode

http://www.lryc.cn/news/176327.html

相关文章:

  • RabbitMQ配置文件_修改RabbitMQ MQTT的1883端口
  • 【Graph Net学习】LINE实现Graph Embedding
  • docker安装使用xdebug
  • (1) ESP32获取图像,并通过电脑端服务器显示图像
  • 乐鑫科技全球首批支持蓝牙 Mesh Protocol 1.1 协议
  • 1.算法——数据结构学习
  • 信息论基础第二章阅读笔记
  • Content-Type的取值
  • 【趣味JavaScript】5年前端开发都没有搞懂toString和valueOf这两个方法!
  • Python中的接口是什么?
  • 自学WEB后端01-安装Express+Node.js框架完成Hello World!
  • 从C语言到C++:C++入门知识(1)
  • 服务器(Windows系统)自建filebrowser网盘服务器超详细教程
  • 扩展欧几里得
  • MySQL 事务介绍 (事务篇 一)
  • nvm nodejs的版本管理工具
  • terraform简单的开始-vpc cvm创建
  • 【MySQL】开启 canal同步MySQL增量数据到ES
  • 密码学概论
  • 渗透测试中的前端调试(一)
  • SPA项目之登录注册--请求问题(POSTGET)以及跨域问题
  • Spring Cloud Alibaba Gateway全局token过滤、局部过滤访问时间超过50ms日志提示
  • 运算符 - Go语言从入门到实战
  • jupyterlab开发环境最佳构建方式
  • Qt_C++读写NFC标签Ntag支持windows国产linux操作系统
  • Web开发-基础知识扫盲
  • SpringMVC 学习(四)RestFul 风格
  • 消息中间件相关知识
  • JackJson多态
  • 孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署