思路:建立两个指针 ,先让第一个指针走K步,然后第二个指针也开始走,两个指针速度一致,那么第一个指针到链表末尾的时候,第二个指针就在第K个位置上。
示例:
int ReverseKth(list l, int k)
{
position p1, p2; //p1先走k步
int i = 0;
p1 = l->next;
while (p1){
++i;
if (i == k) break;
p1 = p1->next;
}
if (i != k) {
printf("不存在这个位置\n");
return -1;
}
p2 = l->next;
while (p1->next){
p1 = p1->next;
p2 = p2->next;
}
return p2->data;
}