LeetCode Intersection of Two Linked Lists
2015-09-11 15:17
417 查看
思路:
“移动快慢指针”的思想:先让长链表的指针(假定为A)走
时间复杂度O(N),空间复杂度O(1)。
“移动快慢指针”的思想:先让长链表的指针(假定为A)走
lenA - lenB的距离,再两个指针一起走,碰到相同的点就有intersection。
时间复杂度O(N),空间复杂度O(1)。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(headA == NULL || headB == NULL) return NULL; int lenA = 0, lenB = 0; ListNode *p1 = headA, *p2 = headB; while(p1 != NULL) { lenA++; p1 = p1->next; } while(p2 != NULL) { lenB++; p2 = p2->next; } int dis = 0; p1 = headA, p2 = headB; if(lenA >= lenB) { dis = lenA - lenB; while(dis != 0) { p1 = p1->next; dis--; } }else { dis = lenB - lenA; while(dis != 0) { p2 = p2->next; dis--; } } while(p1 != NULL && p2 != NULL) { if(p1 == p2) { return p1; }else { p1 = p1->next; p2 = p2->next; } } return NULL; } };
相关文章推荐
- 使用navicat把一个数据库的表导入到另外一个数据库
- django03_表单(forms.ModelForm)(login前后台)
- “摇宝箱”蓄势谋发 三维度磁场效应凸显
- Nginx 下缓存静态文件(如css js)
- 【C++】智能指针之引用计数的实现
- 二叉树转化为排序的双向链表
- TDD的三条规则(中英对照)
- NSOperation
- 阿里云服务器cent0S安装web环境PHP+MySql+Nginx,给nginx添加网站
- django 同步数据库
- svn: E220001: 遇到不可读的路径;拒绝访问。
- Linux中替换文本中的字符串
- javascript函数提升
- Ubuntu下Eclipse搭建Hadoop开发环境
- 传智播客:苹果发布会,我们谈的不仅是情怀,还有干货
- iOS开发网络篇之文件下载、大文件下载、断点下载
- Activity
- function "assert_param" declared implicitly || Undifined symbol assert_param__stm32
- SQL Prompt——SQL智能提示插件
- C/S File Transfer CLI