LeetCode 160 Intersection of Two Linked Lists
2015-09-04 21:50
363 查看
Write a program to find the node at which the intersection of two singly linked lists begins.
For example, the following two linked lists:
begin to intersect at node c1.
Notes:
If the two linked lists have no intersection at all, return
The linked lists must retain their original structure after the function returns.
You may assume there are no cycles anywhere in the entire linked structure.
Your code should preferably run in O(n) time and use only O(1) memory.
思路:先遍历链表A然后遍历链表B:a1,a2,c1,c2,c3,b1,b2,b3,c1,c2,c3;
先遍历链表A然后遍历链表A: b1,b2,b3,c1,c2,c3,a1,a2,c1,c2,c3;
For example, the following two linked lists:
A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3
begin to intersect at node c1.
Notes:
If the two linked lists have no intersection at all, return
null.
The linked lists must retain their original structure after the function returns.
You may assume there are no cycles anywhere in the entire linked structure.
Your code should preferably run in O(n) time and use only O(1) memory.
思路:先遍历链表A然后遍历链表B:a1,a2,c1,c2,c3,b1,b2,b3,c1,c2,c3;
先遍历链表A然后遍历链表A: b1,b2,b3,c1,c2,c3,a1,a2,c1,c2,c3;
/** * 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) { ListNode *h1=headA; ListNode *h2=headB; bool flag1=true; bool flag2=true; if(!h1|| !h2) return NULL; while(h1 && h2) { if(h1==h2) return h1; h1=h1->next; h2=h2->next; if(!h1 && flag1) { h1=headB; flag1=false; } if(!h2 && flag2) { h2=headA; flag2=false; } } return NULL; } };
相关文章推荐
- 读 《一种更清晰的Android架构》笔记
- ios网络:应用一个请求的7个步骤
- C#调试含有源代码的动态链接库遇见there is no source code available for the current location提示时的解决方案
- COCI CONTEST #3 29.11.2014 考后总结
- HDU 4029 Distinct Sub-matrix(hash + 后缀数组)
- 方法的调用 this方法 构造方法
- Android ListView EditText批量录入功能
- [uva_la7146 Defeat the Enemy(2014 shanghai onsite)]贪心
- COCI CONTEST #3 29.11.2014 考后总结
- OpenCV 2.4.10 + VS2010 开发环境配置
- 【NOIP2014 Day2 T2】寻找道路
- Pop–实现任意iOS对象的任意属性的动态变化
- LeetCode ||Ugly Number II
- 原子变量(AtomicLong, AtomicInteger, AtomicReference)
- COCI2014/2015CONTEST #3 dom
- hdu 1005 Number Sequence(找规律)
- Apache之——多虚拟主机多站点配置的两种实现方案
- S5PV210开发系列九_网卡驱动实现
- COCI2014 dom
- 递归函数时间复杂度分析