方法一:快慢指针法函数
struct Node { int data; Node *next; }; /* 函数功能:找出链表倒数第k个结点 输入参数:head:链表头指针(指向头结点) 返回值:指向倒数第k个结点的指针 */ Node* findLastK(Node* head,int k) { if (head == NULL || head->next == NULL) return head; Node *slow, *fast; fast = slow = head->next; int i; for (i = 0; i < k&&fast; ++i) { fast = fast->next; } //判断k是否已超出链表长度 if (i < k) return NULL; while (fast != NULL) { fast = fast->next; slow = slow->next; } return slow; }