单链表中查找倒数第K个节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表中查找倒数第K个节点相关的知识,希望对你有一定的参考价值。

// 查找链表的倒数第K个结点

PSListNode FindLastKNode(PSListNode pHead, int K )

{

                 PSListNode pFast = pHead ;

                 PSListNode pSlow = pHead ;

                 if (pHead == NULL || K <= 0)

                {

                                 return NULL ;

                }

                 while (--K )

                {

                                 if (pFast == NULL )

                                {

                                                 return NULL ;

                                }

                                pFast = pFast->pNext;

                }

                 while (pFast->pNext)

                {

                                pSlow = pSlow->pNext;

                                pFast = pFast->pNext;

                }

                 return pSlow;

}

建议:如果理解不清楚,一定要画个图,看着图写代码会容易很多,思路也会清晰

以上是关于单链表中查找倒数第K个节点的主要内容,如果未能解决你的问题,请参考以下文章

[算法]在单链表和双链表中删除倒数第k个结点

算法总结之 在单链表和双链表中删除倒数第k个节点

线性表练习之Example015-求单链表倒数第 k 个节点

AcWing32:链表中倒数第k个节点

AcWing32:链表中倒数第k个节点

单链表倒数第K个节点的查找和显示