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

24. 两两交换链表中的节点

今日学习的文章链接:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.html

自己看到题目的第一想法:设置3个或4个指针依次更新,遍历链表

看完代码随想录之后的想法:while判断条件里写while(prev.next!=null&&prev.next.next!=null)可以省去判断head和nextNode的麻烦

遇到的困难:发现实际写起来非常麻烦,更新条件设定不好,容易越界报错

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

今日学习的文章链接:https://programmercarl.com/0019.%E5%88%A0%E9%99%A4%E9%93%BE%E8%A1%A8%E7%9A%84%E5%80%92%E6%95%B0%E7%AC%ACN%E4%B8%AA%E8%8A%82%E7%82%B9.html

自己看到题目的第一想法:两次循环,第一次获取节点个数,第二次删除节点

看完代码随想录之后的想法:双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了

遇到的困难:更新节点容易越界报错,双指针没有第一时间想到

面试题 02.07. 链表相交

今日学习的文章链接:https://programmercarl.com/%E9%9D%A2%E8%AF%95%E9%A2%9802.07.%E9%93%BE%E8%A1%A8%E7%9B%B8%E4%BA%A4.html

自己看到题目的第一想法:A指针从headA开始遍历到headB,B指针从headB开始遍历到headA,若存在交点一次遍历后A指针和B指针必定会相等

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

遇到的困难:实现起来比较困难,要小心超时的情况

142.环形链表II

今日学习的文章链接:https://programmercarl.com/0142.%E7%8E%AF%E5%BD%A2%E9%93%BE%E8%A1%A8II.html

自己看到题目的第一想法:不会

看完代码随想录之后的想法:要清楚一点,在快慢指针相遇后,重新设定一个指针从head开始走,改指针必定会和慢指针在入环处相遇

遇到的困难:无

今日学习时长四小时多,除第三题外其他耗时都较久。

你可能感兴趣的:(代码随想录算法训练营第四天| 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交,142.环形链表II)