标签:
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:
null
.
解法:
1.p1遍历链表A,p2遍历链表B
2.如果p1 到达了链表尾部p1开始遍历链表B
3.如果p2 到达了链表尾部,p2开始遍历链表A
4.如果p1 == p2 则找到了分叉点
代码:
class Solution(object): def getIntersectionNode(self, headA, headB): """ :type head1, head1: ListNode :rtype: ListNode """ if headA ==None or headB ==None: return None p1=headA p2=headB while p1 is not p2: p1 = p1.next p2 = p2.next if p1 is p2: return p1 if p1 is None: p1 = headB if p2 is None: p2 = headA return p1
160. Intersection of Two Linked Lists
标签:
原文地址:http://www.cnblogs.com/feiqiangs/p/5798809.html