/* 第 13 题: 题目:输入一个单向链表,输出该链表中倒数第 k 个结点。 链表的倒数第0个结点为链表的尾指针。 因为倒数第k个,就是正数第n-k个,因为长度不知道 用2个指针,第一个走K步,则剩下了n-k步, 与另一指针一起走,则返回第n-k个,即倒数第k个 */ struct listNode { int data; listNode *next; }; listNode node; node * lastK(node *head,int k) { if(k<0) error("k<0"); node *p=head,*pk=head; while(k--)//走k步 { if(pk->next!=NULL) pk=pk->next; else return NULL; } while(pk->next!=NULL)//p走n-k步,用pk控制 { p=p->next;pk=pk->next; } return p; }