博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法训练篇(4)
阅读量:5077 次
发布时间:2019-06-12

本文共 1611 字,大约阅读时间需要 5 分钟。

1.判断一个链表是否存在环,例如下面这个链表就存在一个环:例如N1->N2->N3->N4->N5->N2就是一个有环的链表

c语言版:

1 #include 
2 #include
3 4 struct link{ 5 int data; 6 struct link *next; 7 }; 8 9 int isLoop(struct link* head){10 struct link* p1,*p2;11 if(head == NULL || head->next == NULL)12 return 0;13 p1 = head;14 p2 = head;15 do{16 p1 = p1->next;17 p2 = p2->next->next;18 }while(p1 != NULL && p2 != NULL && p1 != p2);19 if(p1 == p2)20 return 1;21 else22 return 0;23 24 }25 26 int main()27 {28 29 }
View Code

 

2.单向链表的反转

c语言版:

1 #include 
2 #include
3 4 struct link{ 5 int data; 6 struct link *next; 7 }; 8 9 void reserve(struct link* head){10 if(head == NULL || head->next == NULL)11 return;12 struct link * pre,*nex,*p;13 pre = head;14 p = head->next;15 nex = head->next->next;16 do{17 p->next = pre;18 pre->next = NULL;19 pre = p;20 p = nex;21 nex = nex->next;22 }while(nex != NULL);23 head = p;24 25 }26 27 int main()28 {29 30 }

c语言(递归法):

1 #include 
2 #include
3 4 struct link{ 5 int data; 6 struct link *next; 7 }; 8 //递归法 9 struct link* reserve(struct link* p,struct link* head){10 if(p == NULL || p->next == NULL){11 head = p;12 }13 else{14 struct link* temp = reserve(p->next,head);15 temp->next = p;16 return p;17 }18 }19 20 int main()21 {22 23 }

 

转载于:https://www.cnblogs.com/YESheng/p/3900031.html

你可能感兴趣的文章
如何熟悉一个项目?
查看>>
用户类热门排行榜特效
查看>>
Java基础学习,一些零散的笔记之Java的包
查看>>
Android工作学习第5天之TabHost实现菜单栏底部显示
查看>>
WPF/MVVM 快速开始指南(译)(转)
查看>>
Angular1.0路由的Hashbang和HTML5模式
查看>>
uboot配置过程详解1
查看>>
ajax复选框的选中添加
查看>>
万门大学-人工智能、大数据与复杂系统-01.复杂系统
查看>>
《机器学习基石》---线性回归
查看>>
js实现滑动返回顶部
查看>>
BZOJ 1208 [HNOI2004]宠物收养所:Splay(伸展树)
查看>>
vm setup灰色解决办法
查看>>
机器学习基石笔记14——机器可以怎样学得更好(2)
查看>>
mac lion 系统安装
查看>>
Linux下程序守护脚本的应用实例
查看>>
win7开启Administrator账户
查看>>
Vue.js中全局组件和局部组件的编写差异和注意事项
查看>>
cordova 日曆 聯系人 插件使用
查看>>
1046: [HAOI2007]上升序列(dp)
查看>>