题目详情:https://leetcode.com/problems/intersection-of-two-linked-lists/description/
class Solution(object):
def getIntersectionNode(self, headA, headB):
"""
:type head1, head1: ListNode
:rtype: ListNode
"""
lengthA=self.getLength(headA)#得到链表headA的长度
lengthB=self.getLength(headB)#得到链表headB的长度
print lengthA,lengthB #打印两者的长度
#headA和headB遍历链表
if lengthA>lengthB: #如果headA的长度较长,则headA先遍历lengthA-lengthB个节点
diff=lengthA-lengthB
for i in range(0,diff):
headA=headA.next
else:#如果lengthA<=lengthB,那么headB先走lengthB-lengthA个节点
diff=lengthB-lengthA
for i in range(0,diff):
headB=headB.next
while headA!=headB: #然后headA和headB在同时遍历,只要不相等就执行循环
headA=headA.next
headB=headB.next
return headA
def getLength(self,head): #得到链表的长度
length=0
while head!=None:
head=head.next
length+=1
return length