# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# write code here
Node=[]
while head!=None:
Node.append(head)
head=head.next
if k>len(Node) or k<1:
return
return Node[-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 == NULL || k == 0)
return NULL;
ListNode* p=pListHead;//两个指针p、q分别从链表头往尾部跑
ListNode* q=pListHead;
int n=k-1;
while(n--){
if(p->next!=NULL)
p=p->next;
else return NULL;//p指针先跑,当p跑了k-1个节点时,q再跑;当p跑到末尾时,q为所求
}
while(p->next!=NULL){//即p和q之间相差k-1个节点
p=p->next;
q=q->next;
}
return q;
}
};