題目描述
輸入一個鏈表赦抖,輸出該鏈表中倒數(shù)第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;
}
};
- 考慮參數(shù)值是否合法
- 考慮 k 小于鏈表大小