Skip to content
登录后刷题更便捷

反转单向链表

需要将一个单向链表反转。思路很简单,使用三个变量分别表示当前节点和当前节点的前后节点,虽然这题很简单,但是却是一道面试常考题。

思路是从头节点往后遍历,先获取下一个节点,然后将当前节点的 next 设置为前一个节点,然后再继续循环。

js
var reverseList = function (head) {
  // 判断下变量边界问题
  if (!head || !head.next) return head;
  // 初始设置为空,因为第一个节点反转后就是尾部,尾部节点指向 null
  let pre = null;
  let current = head;
  let next;
  // 判断当前节点是否为空
  // 不为空就先获取当前节点的下一节点
  // 然后把当前节点的 next 设为上一个节点
  // 然后把 current 设为下一个节点,pre 设为当前节点
  while (current) {
    next = current.next;
    current.next = pre;
    pre = current;
    current = next;
  }
  return pre;
};

内容仅供参考,难免有不恰当的地方,如果有问题欢迎及时反馈
部分内容来自网络,如果不慎侵犯您的权益,请联系我们,以便及时删除侵权内容