【LeetCode】160 - Intersection of Two Linked Lists
2015-09-10 20:54
309 查看
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.
Tags : Linked List
Solution : notice: it's intersection, not equal of value
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.
Tags : Linked List
Solution : notice: it's intersection, not equal of value
/** * 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) { //pre if(headA==NULL||headB==NULL) return NULL; //length ListNode *a=headA,*b=headB; int lenA=0,lenB=0; while(a!=NULL){ lenA++; a=a->next; } while(b!=NULL){ lenB++; b=b->next; } if(lenA>lenB){ for(int i=0;i<lenA-lenB;i++){ headA=headA->next; } }else{ for(int i=0;i<lenB-lenA;i++){ headB=headB->next; } } while(headA!=headB){ headA=headA->next; headB=headB->next; } return headA; } };
相关文章推荐
- 常见Python异常
- 手势识别 ios
- opencv学习笔记-图像对比度、亮度调节
- 从头到尾解析Hash表算法
- 关于 项目中用到shiro如何通过token鉴权登录,模拟登录,代码直接登录的问题!
- 不露声色地与小人周旋
- 从头到尾解析Hash表算法
- 【C++学习笔记】-static的用法
- CFStringTransform
- 给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对。
- MPMoviePlayerController 的使用
- hdoj 1599 find the mincost route 【最短路&&floyd】
- String类的各种操作(动态)
- POJ1035拼写检查
- block,inline,inline-block的概念和区别
- 对字符串(英文)从小到大排序
- 苹果官网 demo The Elements 阅读随笔
- python unittest 深入failfast及实际应用【示例】
- ZOJ-3795 Grouping
- C语言学习之基本类型在内存中的大小