带头结点的单链表,只有头指针list,不改变链表的情况下,设计一个高效算法,查找倒数第k位上的结点,查找成功输出对应的data值,成功返回1,否则返回0。
链表参考915xjtu2015_4
//查找倒数第k位上的结点,查找成功输出对应的data值,成功返回1,否则返回0
int find(LinkNode link,int k){
Lnode *p,*q;
p=q=link;
int i=1;
while(i<k&&p){
p=p->next;
i++;
}
if(i!=k){
return 0;
}
while(p->next){//此时p、q指针位置相差k个单位
p=p->next;
q=q->next;
}
printf("%d",q->data);
return 1;
}