您的位置:首页 > 其它

输入一个链表,输出该链表中倒数第k个结点。

2017-03-10 11:44 225 查看
题目:

输入一个链表,输出该链表中倒数第k个结点。

两个指针,有一个先走k-1步。另一个从头开始,两个同时走,当一个到达末尾时,另一个就到了末尾k的位置。注意不足链表长度不为k的情况

/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if(pListHead==NULL)
return NULL;
ListNode* begin=pListHead;
ListNode* pre=pListHead;
int count=k-1;
while(begin!=NULL&&count)
{
--count;
begin=begin->next;
}
if(count>0||begin==NULL)
return NULL;
ListNode* temp=pListHead;
while(begin!=NULL)
{
begin=begin->next;
temp=pre;
pre=pre->next;
}
return temp;

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