【链表】查找链表倒数第k个结点,要求只能遍历一次
2017-07-14 11:46
399 查看
解决思路:定义两个指针,一个指针先走k步,然后同时走,当快的指针走到结尾是,慢的指针正好走到倒数第k个。
注意:最后一个结点是倒数第0个考虑:结点个数小于k个,k<=0;头结点为空
//查找链表的倒数第k个结点(最后一个是倒数第0个),要求只能遍历一次链表 //思路:定义两个指针,一个先走k步,然后同时走到尾 //考虑的问题:结点个数小于k个,k<=0;头结点为空 Node* FindKtnToTail(Node* pHead,unsigned int k) { if (pHead == NULL || k == 0) return NULL; Node *pFast = pHead; Node *pSlow = pHead; //快的先走k步 for (unsigned int i = 0; i < k; ++k) { if (pFast != NULL) pFast = pFast->_next; else return NULL; } //然后两个指针一块走 while (pFast->_next != NULL) { pFast = pFast->_next; pSlow = pSlow->_next; } return pSlow; }
相关文章推荐
- 查找单链表的倒数第k个节点,要求只能遍历一次链表(C语言)
- 逆置/反转单链表+查找单链表的倒数第k个节点,要求只能遍历一次链表
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- 链表--查找单链表的倒数第k个节点,要求只能遍历一次链表
- 剑指offer 15---查找单链表的倒数第k个节点,要求只能遍历一次链表
- 逆置/反转单链表+查找单链表的倒数第k个节点,要求只能遍历一次链表
- C语言:【单链表】查找单链表的倒数第k个节点,要求只能遍历一次
- C语言:【单链表】查找单链表的倒数第k个节点,要求只能遍历一次
- 查找单链表的倒数第k个节点,要求只能遍历一次链表
- C实现简单单向链表,一次遍历查找倒数第k个节点的值
- 查找单链表的中间节点,要求只能遍历一次链表
- 查找单链表的中间节点,要求只能遍历一次链表
- 笔试面试,单链表相关(3)遍历一次找中间结点、倒数第K个结点
- 链表的倒数第K个结点(一次遍历)
- 笔试面试,单链表相关(3)遍历一次找中间结点、倒数第K个结点
- 查找单链表的中间节点,要求只能遍历一次链表
- 单链表遍历一次求倒数第k个结点和中间结点
- 带头结点的单链表( 冒泡排序 一次遍历求中间结点的值) 链表 就地反转 倒数第k个结点