剑指offer面试题15:倒数第k个结点

面试题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;
}

 

posted @ 2013-01-06 19:46  代码改变未来  阅读(255)  评论(0编辑  收藏  举报