struct ListNode {
int val;
ListNode *next;
struct ListNode(int x) :
val(x), next(NULL) {
}
输入一个链表,输出该链表中倒数第k个结点
第一种方法:定义两个结点指针p1,p2指向该链表的头结点,然后利用p1遍历整个链表,记下长度n;然后再利用p2往后遍历n-k个结点即可,因为p2已经指向了头结点。
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode *ptr = pListHead;//遍历指针 ListNode *ptr1 = pListHead;//返回指针 if (pListHead == NULL || k == 0) return NULL; int n = 1;//已经指向第一个结点 while (ptr->next != NULL){ ptr=ptr->next; n++; } if(n<k) return NULL; for (int i = 0; i < n - k; ++i) ptr1 = ptr1->next; return ptr1; }NULL || k == 0)原文:http://www.cnblogs.com/jlxuexijidi-2015/p/4887552.html