1.可以先统计链表长度n,然后往后移动n-k次,返回即可。
2.使用双指针,前一个指针先移动k下,然后一起往后移动。
\* Definition for singly-linked list.
\* struct ListNode {
\* int val;
\* ListNode *next;
\* ListNode(int x) : val(x), next(NULL) {}
\* };
\*/
class Solution {
public:
ListNode* getKthFromEnd(ListNode* head, int k) {
ListNode *l1,*l2;
l1=head;
l2=head;
while(k>1)
{
l2=l2->next;
k--;
}
while(l2->next)
{
l1=l1->next;
l2=l2->next;
}
return l1;
}
};