每日一题——链表相交问题
来源:互联网 发布:孙子兵法华杉 知乎 编辑:程序博客网 时间:2024/06/05 15:28
1>判断两个链表是否相交,若相交,求交点(链表不带环)
2>判断两个链表是否相交,若相交,求交点(链表可能带环)
//链表不带环ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { // write your code here if(headA ==NULL || headB == NULL) return NULL; int lenA = 0; int lenB = 0; ListNode* A = headA; ListNode* B = headB; while(A) { lenA++; A = A->next; } while(B) { lenB++; B = B->next; } ListNode* curA = headA; ListNode* curB = headB; if(lenA > lenB) { int len = lenA - lenB; while(len--) { curA = curA->next; } } else if(lenA < lenB) { int len = lenB - lenA; while(len--) { curB = curB->next; } } else {} while(curA->val != curB->val) { curA = curA->next; curB = curB->next; } return curA; }
带环链表可能相交分为两种情况:1,一个带环,一个不带环; 2,两个都带环(该环必须共享,才能保证相交)。解题思路:1,先判断两个链表是否带环;2,分3种情况 若一个有环,一个无环,肯定不相交; 两个都有环;若要相交,环必须是共享的。即若相交,交叉点肯定在起始点与环入口之间。 两个都没环。(就是第一个问题)
附加题:
输出了6个‘-’(在Linux上验证)
第一次fork,共两个进程,输出两个
第二次fork,共四个进程,输出四个
共6个
阅读全文
0 0
- 每日一题——链表相交问题
- 链表相交问题【每日一题】
- 【每日一题-4】链表相交问题
- 每日一刷——1.判断两个链表是否相交,若相交求交点(链表不带环&带环)2.fork()问题
- 每日一题之链表的相交
- 每日一练——两个单链表相交的一系列问题
- 每日一题(14) - 判断两个无环相交的两个链表的交点
- 每日一题(13) - 判断两个无环链表是否相交
- 每日一题3:判断单链表是否相交
- 每日一题(1)——滑雪问题(动态规划)
- 每日一题(1)——滑雪问题(动态规划)
- 链表带环问题【每日一题】
- 链表相交问题
- 链表相交问题
- 链表相交问题
- 链表相交问题
- 链表相交问题
- 链表相交问题
- synchronized的JVM底层实现
- R中ifelse、which、%in%的用法
- 使用双缓冲技术解决动画播放闪烁问题
- C++学习笔记之编程应当注意的问题
- Python操作Mysql数据库
- 每日一题——链表相交问题
- 216. Combination Sum III
- Android--Socket通信
- bingo-培训——用户体验
- 盘点8种CSS实现垂直居中水平居中的绝对定位居中技术
- ubunut python2 和python 3 同时存在 pip指向问题
- 理发师
- oracel 中关于时间日期的取值和转化
- 微信小程序 同步请求授权