struct ListNode
{
char data;
ListNode * next;
};
ListNode *head,*p,*q;
ListNode *pone, *ptwo;//让ONE 和 two的相隔为K,两个一致移动,后面的到末尾,前面的就指向倒数第K个了
ListNode * fun(ListNode *head, int k)
{
assert(k>=0);
pone=ptwo=head;
for (;k>0 && ptwo != NULL;k--)//先看看K还大于0不,然后判断PTWO为NULL了没有
{
ptwo = ptwo->next;
}
if (k>0) //还大于0啊,看来链表长度都小于K,直接返回NULL
{
return NULL;
}
while (ptwo != NULL) //经过前面两步,看来链表长度是大于K的,一起移动吧
{
pone = pone->next;
ptwo = ptwo->next;
}
return pone;//返回前面那个指针吧
}
求链表倒数第K个节点
最新推荐文章于 2021-05-28 14:20:24 发布