删除链表的倒数第n个节点题目如下所示:
思维误区:刚看到这道题的时候一直在纠结倒数第n个元素的指针要怎么获得,觉得一定要像数组那样获得明确的索引才行,所以还用循环遍历链表得到链表元素个数,然后再来找倒数的索引,所以就想的更复杂了,然后做不出来
思路:使用双指针、虚拟头结点(因为最后要返回头结点,所以一般都是设置虚拟头节点,让他指向head);
for循环的遍历,不就意味着指针在一个一个的移动吗,使用双指针(快慢指针),让快指针始终比慢指针快n个节点,然后再同时移动的话,当快指针移动到链表的null时,慢指针就会到需要删除的倒数第n个元素的前面一个节点,这个想法真的是妙哇,这样不就能删除倒数的链表元素了。