leetcode206-反转链表

leetcode 206

思路

考虑使用双指针的方式来进行反转,定义一个pre指针,指向需要反转的位置,cur指针代表当前位置,一层层进行反转,中间需要一个临时指针也就是代码中的node,因为一旦反转,之前的链路就断开了,比如cur.next = pre设置以后,原来的cur.next就找不到了,所以需要设置一个临时指针保存原本的cur.next,这样才能继续下一步操作

图片来自代码随想录

实现

js 复制代码
var reverseList = function (head) {
  let cur = head;
  let pre = null;
  while (cur) {
    let node = cur.next;
    cur.next = pre;
    pre = cur;
    cur = node;
  }
  return pre;
};
相关推荐
qq_148115371 分钟前
C++中的享元模式实战
开发语言·c++·算法
Yzzz-F7 分钟前
Problem - D2 - Codeforces
算法
烟花巷子7 分钟前
C++中的解释器模式
开发语言·c++·算法
暮冬-  Gentle°12 分钟前
C++中的策略模式高级应用
开发语言·c++·算法
2401_8796938714 分钟前
C++中的代理模式高级应用
开发语言·c++·算法
地平线开发者15 分钟前
【地平线J6工具链入门教程】J5到J6算法部署迁移指南
人工智能·算法·自动驾驶·汽车
木井巳18 分钟前
【递归算法】找出所有子集的异或总和再求和
java·算法·leetcode·决策树·深度优先
2501_9249526923 分钟前
C++中的枚举类高级用法
开发语言·c++·算法
2401_8732046526 分钟前
代码覆盖率工具实战
开发语言·c++·算法
不染尘.28 分钟前
欧拉路径算法
开发语言·数据结构·c++·算法·图论