面试题—查找链表倒数第k个结点

算法描述:定义两个指针,快指针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; 
} 

猜你喜欢

转载自blog.csdn.net/qq_39241239/article/details/81029553