题目描述
输入一个链表,输出该链表中倒数第k个结点。
题目分析
要注意三点:
1、输入的头指针为空
2、链表节点总数少于k
3、输入的k=0:k是无符号整数,k-1得到的不是-1,而是4294967295,是无符号的0xFFFFFFFF,可能造成程序崩溃。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
ListNode* p1 = pListHead;
ListNode* p2 = pListHead;
while(p1 && k){
p1 = p1->next;
k--;
}
if(k != 0)
p2 = NULL;
while(p1 && p2){
p1 = p1->next;
p2 = p2->next;
}
return p2;
}
};