一些单链表的面试题
来源:互联网 发布:daas大数据 编辑:程序博客网 时间:2024/05/21 07:31
//知道头节点head和节点的结构,逆序单链表struct Node{ int num; Node* next;}void resort(Node* head){ Node *next, *cur = head; while(head->next) { next = head->next;//单链表只要一断连就没有索引所以需要保留,所以思路就是先保存然后断链 head->next = next->next;// next->next = cur;//第一次cur=head cur = next;//head节点是不移动的,但是每次都需要把head的next节点加到最前面,所以需要有个节点保存 }}//寻找单链表的中间节点Node* find(Node* head){ Node *ptr1 = head, *ptr2 = head; while(ptr1->next && ptr2->next->next) { ptr1 = ptr1->next; ptr2 = ptr2->next->next; } return ptr1;}//判断一个单链表是否是循环链表int isloop(Node* head){ Node* node = head->next; while(node) { if(node == head) return 1; else node = node->next; } return 0;}//判断一个单链表是否有环int hasloop(Node* head){ Node *ptr1 = head->next, *ptr2 = head->next->next; while(ptr1 && ptr2) { if(ptr1 == ptr2) return 1; else { ptr1 = ptr1->next; ptr2 = ptr2->next->next; } } return 0;}//判断找出单链表的倒数第n个节点Node* findN(Node* head, int n){ Node *ptr1 = head, *ptr2 = head; for(int i = 0; i < n; ++i) { ptr1 = ptr1->next; } while(ptr1) { ptr1 = ptr1->next; ptr2 = ptr2->next; } return ptr2;}
阅读全文
0 0
- 一些单链表的面试题
- 单链表的一些经典面试题
- 一些C#的面试题
- java的一些面试题
- C#的一些面试题
- C#的一些面试题
- Dotnet的一些面试题
- 搜集的一些面试题
- 一些面试题的解答
- 一些微软的面试题
- oracle 的一些面试题
- 一些Unity3D的面试题
- hibernate的一些面试题
- PHP的一些面试题
- ruby的一些面试题
- 一些有意思的面试题
- 一些有意思的面试题
- 一些有意思的面试题
- Vue.js入门(一)——创建第一个vue.js项目
- 课堂练习6(第四周)
- 85、java的IO操作-转换流的简化写法
- ln修改cdh日志目录
- linux离线安装mysql
- 一些单链表的面试题
- K-Means聚类算法的原理及实现【转】
- Toast
- 86、java的IO操作-字符缓冲流
- linux 如何编译 静态库,动态库
- POJ 2456-Aggressive cows
- 设置NotePad++设置"不打开上次关闭的文件"
- Ajax-XMLHttpRequest对象
- hive 数据体系构建与应用的使用过程