找链表的中间结点和倒数第k个结点(链表笔试题面试题)
来源:互联网 发布:mac运行速度变慢 编辑:程序博客网 时间:2024/06/08 09:23
一、问题
查找链表的中间节点
查找链表的倒数第k个结点
二、解决思路:快慢指针
找中间节点:快指针走两步,慢指针走一步
找倒数第k个结点:快指针走k步或k-1步,然后慢指针再开始走
三、代码实现(c语言)
1.找中间结点
sListNode* FindMidNode(sListNode* pHead){ sListNode* slow = pHead, *fast = pHead; while(fast!=NULL && fast->next!=NULL) { slow = slow->next; fast = fast->next->next; } return slow;
2.找倒数第k个结点
sListNode* FindKTailNode(sListNode* pHead,int k){ assert(k >= 0); sListNode* fast = pHead, *slow = pHead; while(--k) //快指针走k-1步 { if(fast->next == NULL) return NULL; fast = fast->next; } while(fast->next != NULL) { slow = slow->next; fast = fast->next; } return slow;}
0 0
- 找链表的中间结点和倒数第k个结点(链表笔试题面试题)
- 笔试面试,单链表相关(3)遍历一次找中间结点、倒数第K个结点
- 剑指offer(15)----求链表中的倒数第k个结点(扩展求链表的中间结点)
- [剑指offer][面试题15]输出链表倒数第K个结点
- 面试题15:输入一个链表,输出该链表中倒数第k个结点。
- 面试题15、输入一个链表,输出该链表中倒数第k个结点。
- 【面试题】从尾到头打印链表&&链表中倒数第K个结点
- 面试题15:链表中的倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 面试题13:链表中倒数第k个结点
- 【面试题十五】链表中倒数第k个结点
- 面试题整理 2:求链表倒数第 k 个结点
- 面试题15 链表中倒数第K个结点
- 面试题15:链表中倒数第k个结点
- 面试题15链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 剑指offer面试题 链表中倒数第K个结点
- 面试题15:查找链表中倒数第k个结点
- error C2533构造函数不能有返回类型
- 数据结构:模板实现栈和队列
- 初级版迷宫问题(栈的应用)
- [c语言]单链表的实现
- 约瑟夫环
- 找链表的中间结点和倒数第k个结点(链表笔试题面试题)
- 刷刷笔试题~(4)编程
- bfs广度优先搜索
- SICP 练习1.7
- 解析出一个网页中所有的图片
- 关于JAVA中使用nbtstat获取地址报错
- PyQt5:将窗口放在屏幕中间(6)
- Retrofit实现App更新
- HDU1195 BFS或者DP