day4 两两交换链表中的节点 删除链表的倒数第N个节点 链表相交 环形链表

- 两两交换链表中的节点
    - cur移动的时候,应该后移动俩位,或者说移动到下一操作节点的前一位

- 删除链表的倒数第N个节点 
    - 因为slow删除元素是要在删除元素的前一位进行删除,所以while ( k--) 移动的fast还不够,还需要再往后移动一位,这样才能让slow指向正确的位置

- 链表相交 
    - 如果最后是相交的链表,相交部分是一条链,所以只需要把它们尾部对齐,从短链位置出发,遍历判断有无相等即可

- 环形链表II
    - 哈希表
        - 用一个unordered_set记录遍历过的ListNode* 即可,如果碰到相同的即可返回,遍历结束那就return nullptr
    - 双指针
        - 这个太难想到了,第一次做
            - 1. 判断有无环
                - 让fast指针一次走2步,slow一次1步,如果有环,fast则是相对于slow每次1步的速度逼近slow,所以在某个时刻一定它们会相遇
            - 2. 寻找位置
                - 相遇点出发和head出发,最终新的相遇的地方就是我们要找的环点
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值