Intersection of Two Linked Lists 查找2个链表的公共交点
来源:互联网 发布:手机数控仿真软件 编辑:程序博客网 时间:2024/05/07 18:05
Intersection of Two Linked Lists
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.
Credits:
Special thanks to @stellari for adding this problem and creating all test cases.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *///查找两个链表的第一个公共节点,如果两个节点的尾节点相同,肯定存在公共节点//长的链表开始多走 (h1的数量 - h2的数量)步,然后和短链表同步往下走,遇到的第一个相同的节点就是最早的公共节点class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(headA==NULL||headB==NULL) return NULL; ListNode *p=headA; ListNode *q=headB; int k1=1,k2=1; while(p->next) { p=p->next; k1++; } while(q->next) { q=q->next; k2++; } if(p!=q) return NULL; else { int count=abs(k2-k1); if(k2>k1) { p=headB; q=headA; } else { p=headA; q=headB; } while(count--) { p=p->next; } while(p&&q&&p!=q) { p=p->next; q=q->next; } return p; } }};
0 0
- Intersection of Two Linked Lists 查找2个链表的公共交点
- Intersection of Two Linked Lists 找出2个链表的交点
- Intersection of Two Linked Lists(两条链表有无交点)
- LeetCode OJ 之 Intersection of Two Linked Lists (两个链表的交点)
- 160 Intersection of Two Linked Lists 求两个链表的交点
- LeetCode--Intersection of Two Linked Lists (两个链表的交点)Python
- 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
- 解题报告 之 UVA116 Unidirectional TSP
- 二分法求解方程的近似解(sicily 1017)
- Struts2--- 一步步的产生史
- 网络编程练习-路由套接字
- 无法识别enum类型的变量
- Intersection of Two Linked Lists 查找2个链表的公共交点
- matlab中的round、ceil、floor、fix函数
- Compare Version Numbers 版本大小比较 字符串处理
- Deferred对象
- JavaScript数据访问性能优化方案
- Div 3
- hdu 2067 小兔的棋盘(卡特兰数)
- rnnlm源码分析(二)
- Dreamweaver+appserv(PHP\MySQL\Apache)网站开发环境搭建全程指导