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;
};
相关推荐
NEFU_Jyj10 小时前
牛客周赛R168
算法
likexuec17 小时前
数据结构(2)
数据结构
文丑颜不良啊17 小时前
LeetCode2221~2240题目解析
java·leetcode
Navigator_Z18 小时前
LeetCode //C - 1317. Convert Integer to the Sum of Two No-Zero Integers
c语言·算法·leetcode
D e re k ZH18 小时前
C++ 标准库算法全景指南
数据结构·c++·算法
冻柠檬飞冰走茶19 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
文丑颜不良啊20 小时前
LeetCode2161~2180题目解析
java·leetcode
雪落漂泊20 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
文丑颜不良啊21 小时前
LeetCode2141~2160题目解析
java·leetcode