双指针写法:借用题解区Dylan的图。
(1)有共同节点的情况:
1->2->3->6->7->4->5->6->7
4->5->6->7->1->2->3->6->7
在6相遇
(2)没有共同节点的情况:{1,2,3},{4,5},{}
1->2->3->4->5
4->5->1->2->3
在None相遇
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
#
# @param pHead1 ListNode类
# @param pHead2 ListNode类
# @return ListNode类
#
class Solution:
def FindFirstCommonNode(self , pHead1 , pHead2 ):
a=pHead1
b=pHead2
while a!=b:
if a!=None:
a=a.next
else:
a=pHead2
if b!=None:
b=b.next
else:
b=pHead1
return a##在没有交点的时候,两个链表最后都会出现都是None值