24. 两两交换链表中的节点
自己看到题目的第一想法:设置3个或4个指针依次更新,遍历链表
看完代码随想录之后的想法:while判断条件里写while(prev.next!=null&&prev.next.next!=null)可以省去判断head和nextNode的麻烦
遇到的困难:发现实际写起来非常麻烦,更新条件设定不好,容易越界报错
19.删除链表的倒数第N个节点
自己看到题目的第一想法:两次循环,第一次获取节点个数,第二次删除节点
看完代码随想录之后的想法:双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了
遇到的困难:更新节点容易越界报错,双指针没有第一时间想到
面试题 02.07. 链表相交
自己看到题目的第一想法: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开始走,改指针必定会和慢指针在入环处相遇
遇到的困难:无
今日学习时长四小时多,除第三题外其他耗时都较久。