【C语言】查找链表的中间节点及倒数第K个节点
来源:互联网 发布:lpl韩国外援知乎 编辑:程序博客网 时间:2024/05/22 19:02
//找链表的中间节点Node *MidNode(PLinkList plist){ PLinkList p1,p2; //若链表为空,直接返回 if(plist ==NULL) { printf( "NULL\n"); return ; } /*利用快慢指针,快指针一次走两步,慢指针一次走一步,两个指针同时开始走,当快指针 走向链表尾部时,慢指针则刚好走到链表的一半,即指向中间节点*/ p1=p2= plist; while(p1!=NULL &&p1->next!=NULL) { p1=p1->next->next; p2=p2->next; } return p2;}//找倒数第K个节点Node *FindKNode(PLinkList plist, int k ){ PLinkList fast,slow; assert(plist ); fast=slow= plist; if(plist ==NULL) { return NULL ; } // 快指针先走K-1步 while(--k &&fast->next!=NULL) { fast=fast->next; } if(k ==0) //当K=0的条件下,两个指针同时开始走 { //当快指针走向表尾时,慢指针就指向倒数第K个节点 while(fast->next!=NULL ) { fast=fast->next; slow=slow->next; } return slow; } return NULL ;}
0 0
- 【C语言】查找链表的中间节点及倒数第K个节点
- 数据结构之链表面试题汇总(一)--查找单向链表的中间节点、倒数第K个节点
- 查找单链表的倒数第k个节点,要求只能遍历一次链表(C语言)
- C实现简单单向链表,一次遍历查找倒数第k个节点的值
- C语言:【单链表】查找单链表的倒数第k个节点,要求只能遍历一次
- 查找链表倒数第K个节点
- 查找链表倒数第k个节点
- 反转链表和查找倒数第K个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第K个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第K个节点
- 查找链表中倒数第K个节点
- 单链表查找倒数第k个节点
- 查找链表中倒数第k个节点
- spring 集成logbcak日志
- C语言练习作业(五)
- Python实战之KNN实现
- 欢迎使用CSDN-markdown编辑器
- CUDA中并行规约(Parallel Reduction)的优化
- 【C语言】查找链表的中间节点及倒数第K个节点
- easyui(from)表单json格式转换
- AT&T汇编指令总结
- 学习总结
- 关于sql语句的一点总结
- 1058. A+B in Hogwarts (20)
- 对 AD转换的理解
- ajax
- 一个关于布尔值的面试题