算法描述:定义两个指针,快指针fastp和慢指针slowp。先让两指针同时指到头指针上。然后让快指针先走k步。之后再两指针同时向后跑,当fastp指针跑到NULL时,slowp指向的结点即为倒数第k个结点
结构体类型定义:
typedef struct node{
int data;
struct node *next;
}ElemSN;
代码如下:
ElemSN* FindkNode(ElemSN *head,int k){
ElemSN *fastp,*slowp;
fastp=slowp=head;
for(;k>0&&fastp;fastp=fastp->next,k--); //快指针先走k步
for(;fastp;fastp=fastp->next,slowp=slowp->next);
return slowp;
}