查找单链表的倒数第N个节点(C语言)
LinkedList* GetNthNodeFromBack(LinkedList* Head, int N)
{
int i = 0;
LinkedList* firstNode = Head;
while (i < N && firstNode->next != NULL)
{ //正数N个节点,firstNode指向正的第N个节点
i++;
firstNode = firstNode->next;
}
if (firstNode->next == NULL && i < N - 1)
{ //当节点数量少于N个时,返回NULL
return NULL;
}
LinkedList* secNode = Head;
while (firstNode->next != NULL)
{ //查找倒数第N个元素
secNode = secNode->next;
firstNode = firstNode->next;
}
return secNode;
}