查找链表倒数第k位置的节点
作者:
飞白非白 | 来源:发表于
2018-12-04 11:26 被阅读2次// 求链表的倒数第K个节点:主要思路设置两个指针,刚开始都指向链
// 表的第一个节点,第一个指针先走k-1步,然后两个一块走,直到第
//一个指针的下一位为nullptr,则第二个指针所指的位置就是倒数第k个节点。
struct ListNode{
int value;
ListNode* next;
};
ListNode* findKthToTail(ListNode *phead,unsigned int k)
{
if (k == 0)/
return nullptr;
if (phead == nullptr)
return nullptr;
ListNode *p1 = phead;
ListNode *p2 = phead;
for (int i = 1; i < k; ++i)
{
if (p1->next == nullptr){//若k比本身链表的最大长度还大则直接返回nullptr
return nullptr;
}
p1 = p1->next;
}
while (p1->next != nullptr)
{
p1 = p1->next;
p2 = p2 ->next;
}
return p2;
}
本文标题:查找链表倒数第k位置的节点
本文链接:https://www.haomeiwen.com/subject/pflmcqtx.html
网友评论