您的位置:首页 > 其它

链表中倒数第k个结点

2014-02-23 02:00 176 查看
#include "stdafx.h"
#include <iostream>
/*
题目:链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯.本题从1开始计数,即链表的尾结点是倒数第一个结点。
比如一个链表有6个结点,从头结点开始它们的值依次是1,2,3,4,5,6这个链表的倒数第三个结点是值为4的结点.
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
*/
using namespace std;
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};

ListNode* FindKthToTail(ListNode* pListHead,unsigned int k)
{
if(pListHead == NULL||k==0)
{
return NULL;
}
ListNode* pHead = pListHead;
ListNode* pBehind = NULL;
for(unsigned int i = 0;i<k-1;++i)
{
if(pHead->m_pNext!=NULL)
{
pHead = pHead->m_pNext;
}
else
{
return NULL;
}
}

pBehind = pListHead;
while(pHead->m_pNext!=NULL)
{
pHead = pHead->m_pNext;
pBehind = pBehind ->m_pNext;
}
return pBehind;
}
int _tmain(int argc, _TCHAR* argv[])
{

return 0 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: