题目描述
输入一个链表,输出该链表中倒数第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 == nullptr || k==0) return nullptr;
ListNode *pAhead1 = pListHead;
ListNode *pBehind ;
L1 = pListHead;
for (int i=0;i<k-1;i++){
if(L1->next){
L1 = L1->next;
}else{
return nullptr;// 没有 k 过大
}
}
L2 = pListHead;
while(L1->next){ //存在链表后面的值
L1 = L1->next;
L2 = L2->next;
}
return L2;
}
};
- 考虑参数值是否合法
- 考虑 k 小于链表大小
网友评论