题目
题解
第一想法
这题用双指针做就很快了,找出倒数第k个节点,那么两个指针只需要间隔k个位置,当快指针指向最后一个节点的下一个节点,即NULL时,慢指针就指向了倒数第k个节点。直接返回即可。
正确题解
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
int kthToLast(struct ListNode* head, int k){
struct ListNode *fast = head;
struct ListNode *slow = head;
for(int i=0;i<k;i++){
fast = fast -> next;
}
while(fast != NULL){
fast = fast -> next;
slow = slow -> next;
}
return slow -> val;
}
//1->2->3->4->5
//A B
//1->2->3->4->5
// A B