单链表中查找倒数第K个节点
2016-04-05 23:53
357 查看
// 查找链表的倒数第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;
}
建议:如果理解不清楚,一定要画个图,看着图写代码会容易很多,思路也会清晰
示意图:
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;
}
建议:如果理解不清楚,一定要画个图,看着图写代码会容易很多,思路也会清晰
相关文章推荐
- C#定义并实现单链表实例解析
- C#数据结构之单链表(LinkList)实例详解
- C语言实现单链表逆序与逆序输出实例
- C语言单链表常见操作汇总
- C数据结构之单链表详细示例分析
- C++中单链表的建立与基本操作
- 深入单链表的快速排序详解
- java实现单链表中是否有环的方法详解
- java实现单链表、双向链表
- Python单链表的简单实现方法
- Go语言单链表实现方法
- 结构之美:在单链表指定位置插入数据
- 《编程之美》3.4:没有头结点的单链表如何删除结点
- 结构之美:使用尾插法创建单链表
- 单链表实现
- 单链表的实现及其操作
- 判断单链表是否有环
- 单链表建环,无环链表变有环
- 用头插法实现单链表整表创建
- 单链表的删除某个元素的操作