Day04

第四天:链表part02

LC24两两交换链表中的节点

  1. 不是很熟悉,原因分析;
    • 对链表的虚拟节点设置不是很敏感
      在这里插入图片描述

    • 对边界条件cur!=null考虑不全面,只考虑到的cur.next!=null

  2. 代码:
    在这里插入图片描述

LC19删除链表的倒数第N个节点(未掌握

  1. 未掌握分析:没能快速想到双指针的应用,错误思路是翻转链表再删除再反转
  2. 解题思路:双指针+虚拟节点
    • 双指针:先让fast移动n步,然后让fast和slow同时移动,删除slow指向的节点
    • 加入虚拟节点,方便删除,让slow最终指向目标节点的前一个节点
      • 先让fast移动n+1步,然后同时移动fast和lsow
  3. 代码
    在这里插入图片描述

LC-面试题02.07.链表相交(超时1min)

  1. 超时原因分析:对代码掌握的不够熟练,还需要多加练习
    • 对num进行计数的时候,不能直接在headA和headB上进行操作,会丢失头节点信息
    • 不能忘记判断a和b在最后是否相等,如果不相等说明两条链表一定不相交
  2. 代码:
    在这里插入图片描述

LC142环形链表II(未掌握

  1. 未掌握分析:已经第二次刷这道题了,之前就在相同的地方卡住,现在又在相同的地方卡住
    • 错误1:将fast和slow都设置为head,那么接下来的循环将失效,因为fast恒等于slow
    • 错误2:由错误1衍生,slow和fast的初始化问题,既然不能初始化为head,那么就初始化为下一轮循环中的位置,即slow=head.next,fast=head.next.next
    • 错误3:由错误2衍生,slow初始化为head.next,fast初始化为head.next.next,那么需要判断head.next.next为null的情况,需要在最开始进行判断
  2. 错误代码:
    在这里插入图片描述
  3. 正确代码:
    在这里插入图片描述
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值