/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead ListNode类
* @param k int整型
* @return ListNode类
*/
//方法二:
//先遍历有n个节点,需建立一个临时指针p
//然后判断n<k是否成立,若不成立返回NULL,成立则进行下一步
//重新使指针p回到链表头
//通过循环,使得指针p指向第n-k+1个节点即可
struct ListNode* FindKthToTail(struct ListNode* pHead, int k )
{
// write code here
//新建指针p
struct ListNode *p = pHead;
//先遍历有n个节点
int n = 0;
while(p!=NULL)
{
++n;
p = p->next;
}
//然后判断n<k是否成立,若不成立返回NULL,成立则进行下一步
if(n<k)
{
return NULL;
}
//重新使指针p回到链表头
p = pHead;
//通过循环,使得指针p指向第n-k+1个节点即可
for (int i=0; i<(n-k); ++i)
{
p = p->next;
}
return p;
}