判断两个无环链表是否相交,相交则返回相交首结点
来源:互联网 发布:淘宝买药货到付款原因 编辑:程序博客网 时间:2024/04/28 11:21
- /*
- 判断两个链表是否相交,相交则返回相交的结点
- 分为三种情况:
- 1:两个链表都没有环,方法是先分别求出两个链表的长度,然后让指向长链表的首指针先移动两链表长度的差值,然后同步移动,当相等时即为交点
- 2:其中一个有环,一个没有环,则绝对不可能有交点
- 3:两个都有环,分为两种情况,(1)在进环前就相交,转为1的情况 (2)进环后相交或者都有环不相交,只需第一个链表入环结点遍历一圈即可看是否等于第二个链表的入环结点
- */
- // 两个链表都没有环,求出交点
- Node *f2(Node *head1, Node *head2, Node *tail){
- int l1 = 0, l2 = 0;
- Node *p1 = head1, *p2 = head2;
- while(p1 != tail){
- l1++;
- p1 = p1->next;
- }
- while(p2 != tail){
- l2++;
- p2 = p2->next;
- }
- p1 = head1;
- p2 = head2;
- int t = l1 - l2;
- if(l1 < l2){
- p1 = head2;
- p2 = head1;
- t = l2 - l1;
- }
- while(t--) p1 = p1->next;
- while(p1 != tail && p2 != tail && p1 != p2){
- p1 = p1->next;
- p2 = p2->next;
- }
- return p1;
- }
0 0
- 判断两个无环链表是否相交,相交则返回相交首结点
- 3.6 判断两个无环链表是否相交 & 找出相交的第一个结点
- 数据结构 - 如何判断两个无环单链表是否相交;如果相交,给出相交的第一个结点
- 判断两个链表是否相交,如果相交如何找到第一个相交结点。
- 判断直线是否相交,若相交,则返回交点
- 判断无环链表是否相交
- 两个单链表(可能有环)是否相交,若相交则返回第一个相交点
- 判断两个时间段是否相交
- 判断两个矩形是否相交
- 判断两个单链表是否相交
- 判断两个单链表是否相交
- 判断两个单链表是否相交
- 判断两个矩形是否相交
- 判断两个单链表是否相交
- 判断两个矩形是否相交
- 判断两个单链表是否相交
- 判断两个单链表是否相交
- 判断两个单链表是否相交
- SDUT 2144 图结构练习——最小生成树
- AWE2017,机智云推出“机智玛莉”推动家电行业进入生态智能时代
- 错误 net.sf.json.JSONException: There is a cycle in the hierarchy!
- Oracle 用户解锁
- 使用rowid实现高速分页查询
- 判断两个无环链表是否相交,相交则返回相交首结点
- 深入浅出学习boost的date_time库(一 )
- 面向对象建模
- java linux系统 有关服务器的配置
- Myeclipse的插件mybatis-generator创建的配置文件generatorConfig.xml的配置详细说明
- 如何设计一个小而美的秒杀系统?
- js调用oc代码 和 oc调用js代码
- Spring Boot + Mybatis多数据源和动态数据源配置
- ARM Linux 3.x的设备树(Device Tree)