面试题15:倒数第k个结点。(链表不带头结点)。设置两个指针,一个从头结点开始,走k-1步时另外一个从头开始与该指针同步知道第一个指针到达末尾。
ListNode * FindKthToTail(ListNode *pListHead,unsigned int k) { if(pListHead==NULL||k==0) { return NULL; } ListNode *pAhead=pListHead; ListNode *pBehind=NULL; for(int i=0;i<k-1;i++) { if(pAhead->next!=NULL) { pAhead=pAhead->next; } else return NULL; } pBehind=pListHead; while(pAhead->next!=NULL) { pAhead=pAhead->next; pBehind=pBehind->next; } return pBehind; }