代码随想录算法训练营第四天| 24.两两交换链表节点 ,19.删除链表倒数第N个节点 ,160.链表相交 142.环形链表II

本文分享了刷题过程中的建议,强调了先观看视频教学的重要性,并通过实例讲解了Python链表操作,如两两交换节点、删除倒数第N个节点、链表相交和环形链表II。作者强调了清晰描述问题和理解算法关键点的重要性,以及解决实际问题中遇到的困难和收获。
摘要由CSDN通过智能技术生成

刷题建议

刷题建议与debug

  1. 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。
  2. 写博客,将自己的感悟沉淀下来,不然会忘
  3. 大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题,做了哪些调试,而不要只是把代码甩出来,这样方便大家帮忙快速定位问题。

博客内容:(博客记录以及打卡格式

今日学习文章链接和视频链接

Python菜鸟教程

24.两两交换链表节点

自己看到题目的第一想法

  1. 完全没思路

看完代码随想录之后的想法

  1. 关键1:想清楚遍历的终止条件
  2. 关键2:虚拟头节点操作
  3. 关键3:注意临时节点的使用,类似于反转链表

自己实现过程中遇到哪些困难

  1. dummy_head = ListNode(next=head)
  2. 自己画图理解逻辑,注意怎么用临时节点表示节点

相关题目

19.删除链表倒数第N个节点

自己看到题目的第一想法

  1. 关键在于数学和边界,从dummyhead到None到底要走几步?倒数第n个实际上是第Len-n+1个
  2. 没有用dummyhead,这是不应该的。

看完代码随想录之后的想法

  1. 删除操作要用dummyhead,这样不用对头节点删除进行特殊判断
  2. 快慢指针
  3. 快指针先移动N步,然后快慢指针同时移动直到快指针移动到None,慢指针刚好指向被删除的节点

160.链表相交

自己看到题目的第一想法

  1. A,B两个链表找到长度更长的,然后走len1-len2步,现在A,B一样长
  2. 然后两个指针同时向前走,直到相等,如果没有相等返回null

看完代码随想录之后的想法

  1. 想法是对的,但是要注意代码不要冗余,最后一个指针指向最长链表

自己实现过程中遇到哪些困难

今日收获,记录一下自己的学习时长

142.环形链表II

自己看到题目的第一想法

  1. 第一步判断链表是否有环
  2. 第二步如何找到环入口
  3. 无思路

看完代码随想录之后的想法

  1. 快慢指针判断是否有环,fast每次走两步,slow每次走一步,那么二者相遇必然是在环内,如果相遇则代表有环
  2. 二者相遇后,fast指针指向相遇的位置,slow指针重回head,然后同时向前走,那么二者相遇就是环入口,具体推导过程画图
  3. 注意循环结束条件,fast是两步两步跳的

自己实现过程中遇到哪些困难

今日收获,记录一下自己的学习时长

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值