24.两两交换链表中的节点
这个看上去就是一个递归解决的问题,一般链表都可以考虑递归。这道题和之前的反转链表思路差不多,就是反转前两个然后接上后面的全部,然后后面的再进行反转。题解如下:
19.删除链表的倒数第N个节点
这道题是删除倒数第n个,最直接想法就是先遍历一遍看看有几个,然后再删除。但是这样的话就遍历了两次。一次的话需要两个指针,一个记录长度,一个记录倒数的位置。题解如下:
面试题 02.07. 链表相交
这个题目感觉需要直接记住解法,以后遇到相交的问题可以先考虑这个方法。相交的话就是走完一个走另一个,如果有交点,交点不为none,要不就是none。题解如下:
142.环形链表II
同样是一个要记住方法的题目,就用快慢指针来判断。注意点:1.两个指针一定会相交,但是前提是在同一位置出发,因为快比慢一次多跑一个,那么有环肯定会相交,相当于一个不动,一个往前走1个单位。2.二者在慢指针第一圈就会相遇。题解如下:
其它:
学习时长:3h
学习心得:有链表类型可以先看看能不能递归,一些经典题目要牢记于心。
学习链接:两两交换链表中的节点, 链表相交, 环形链表Ⅱ, 删除链表倒数第N个结点