链表中第K个节点
链表中倒数第k个结点
http://www.nowcoder.com/questionTerminal/886370fe658f41b498d40fb34ae76ff9
这道题并不难, 之前考研的时候就做过。 使用双指针,就可以做到。
判断边界值,是这道题需要注意的地方。 pHead为空, K输入不合法(K<0或者 K超过了链表的长度)
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead ListNode类
* @param k int整型
* @return ListNode类
*/
ListNode* FindKthToTail(ListNode* pHead, int k) {
// write code here
if(pHead==nullptr) return nullptr;
if(k<0) return nullptr;
ListNode *first=pHead;//双指针中的第一个指针
ListNode *last=pHead;
for(int i=0;i<k;i++){
if(last == nullptr) return nullptr;
last=last->next;
}
while(last != nullptr){
last=last->next;
first=first->next;
}
return first;
}
};

