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的节点,而且这样就是考虑的太复杂了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 ...
    刻苦驴哝阅读 158评论 0 0
  • 题目描述:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表...
    Ai_满满阅读 307评论 0 0
  • 问题:Reverse Linked List Reverse a singly linked list. Inpu...
    石榴蒂凡尼_21e4阅读 688评论 0 0
  • 当前Leetcode的链表标签题目一共53道题,除了会员题目,题解基本都在这了,还可能陆续更新一题多解~ 简单 (...
    李白开水阅读 423评论 0 2
  • 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例:给定一个链表:...
    我是小曼巴阅读 332评论 0 0