双指针法:设立两个指针,一个fast快指针,一个slow慢指针,让fast指针先走k步,本质就是快慢指针差了k个结点的距离。然后再让两个指针一起走,当快指针走到空时,慢指针即为倒数第k个结点。
如图所示:
代码如下:
这里需要注意k的大小可能大于链表的长度,这样就会导致快指针产生越界访问的问题,所以快指针在先走k步的时候得判断快指针是否为空。
双指针法:设立两个指针,一个fast快指针,一个slow慢指针,让fast指针先走k步,本质就是快慢指针差了k个结点的距离。然后再让两个指针一起走,当快指针走到空时,慢指针即为倒数第k个结点。
如图所示:
代码如下:
这里需要注意k的大小可能大于链表的长度,这样就会导致快指针产生越界访问的问题,所以快指针在先走k步的时候得判断快指针是否为空。