encorehe学习手册-lettcode-206. 反转链表

128 阅读1分钟
  • 题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。  

示例 1:

输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]

输入:head = [1,2] 输出:[2,1]

输入:head = [] 输出:[]  

  • 写法一
var reverseList = function(head) {
  if (!head) return null
  //声明变量记录 pre、cur
  let pre = null;
  let cur = head;
  // 当cur是节点时,进行迭代
  while (cur) {
     //先保存当前节点的下一个节点
     const next = cur.next
     cur.next = pre 
     pre = cur
     cur = next
  }
  return pre;
};
  • 写法2
var reverseList = function(head) {
  if (!head) return null
  let pre = null, cur = head;
  while (cur) {
    [cur.next,pre,cur] = [ pre,cur,cur.next ]
  }
  return pre;
};