2022-08-13 搞清链表翻转

1=>2=>3=>4 单链表翻转问题

1.链表翻转 翻转的是链表的指向, 不是变为 4 =>3 => 2 => 1; 应该是 1<=2<=3<=4

  1. 链表翻转无需想的太多, 就是有两个指针pre cur, 为了方便引入了next;
let pre = null;
let cur = head;
// pre和cur会继承到下一次遍历 当指针理解
// pre永远是cur的上一个节点
// cur最终遍历到最后一个, 然后 cur = cur.next; cur 没有退出循环
// pre最终遍历到最后一个节点, 当下一个节点cur没有了 退出循环
while(cur){
  const temp = cur.next; // 为了改变指针的值 
  cur.next = pre// 改变当前链表节点的指向 指为前面的节点
  pre = cur;  改变前指针
  cur = temp; 改变后指针
}
return  pre

起初写被第三个指针困扰, 为什么不直接改变第三个指针的指向, cur.next.next = cur ?
后面指针的指向会乱, 会丢失下一个节点的next的节点,而且这样就是考虑的太复杂了

你可能感兴趣的:(2022-08-13 搞清链表翻转)