Intersection of Two Linked Lists
来源:互联网 发布:Java:什么是方法重写 编辑:程序博客网 时间:2024/06/13 10:24
题目:Write a program to find the node at which the intersection of two singly linked lists begins.
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.
示例代码如下:
class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {if(headA==NULL ||headB==NULL)return NULL;int lenHeadA=0,lenHeadB=0;ListNode *p=headA,*q=headB;//求链表headA和headB的长度while(p){p=p->next;lenHeadA++;}p=headA;while(q){q=q->next;lenHeadB++;}q=headB;int distance=0;if(lenHeadA>lenHeadB){distance=lenHeadA-lenHeadB;for(int i=0;i<distance;i++)p=p->next;}if(lenHeadA<lenHeadB){distance=lenHeadB-lenHeadA;for(int i=0;i<distance;i++)q=q->next;}//循环结束的条件是p==q!=null(有相交点) //或者是p==q==null(无相交点)while(p!=q){p=p->next;q=q->next;}return p;};
0 0
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists
- stm32 EXTI中断BUG,无法进入外部中断的问题
- 程序员修炼之路-(3)排序(上):基本排序
- Solaris 10下使用Python3
- 设计模式(java)——简单工厂模式
- swing Jable 学习(一)—TableColumnModel
- Intersection of Two Linked Lists
- 工作5年之后,对java基础的一点回忆 (1)
- 两个线程每隔一秒钟交替打印5个数
- Android控件的继承关系图
- 【系统设计】腾讯2014软件开发笔试题目——排队系统设计
- 十进制转十六进制
- HDU - 4003 Find Metal Mineral(动态规划)
- GTK编程:获取屏幕分辨率
- android 颜色的色值