练习:输入一个链表,输出该链表中倒数第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* p1 = pListHead, *p2 = pListHead;
for(int i = 0;i < k;i++) {
if(p2 != NULL)
p2 = p2->next;
else
return NULL;
}
while(p2 != NULL) {
p1 = p1->next;
p2 = p2->next;
}
return p1;
}
};
本文介绍了一种寻找链表中倒数第k个节点的方法。通过使用双指针技巧,首先让第一个指针向前移动k个位置,然后两个指针同步移动直至首个指针到达链表尾部,此时第二个指针指向的目标即为所求。
982

被折叠的 条评论
为什么被折叠?



