Intersection of Two Linked Lists https://leetcode.com/problems/intersection-of-two-linked-lists/?tab=Description
- Find the length m and n of the two lists. Then find the difference d = m-n.
- Now move the longer list head by d.
- Now move both m and n by 1 at each iteration and return when they meet.
class Solution: # @param two ListNodes # @return the intersected ListNode def move(self, root, num): for i in range(num): root = root.next return root def count(self,root): cnt = 0 while root: root = root.next cnt = cnt+1 return cnt def getIntersectionNode(self, headA, headB): n = self.count(headA) m = self.count(headB) d = abs(n-m) if m>n: headB = self.move(headB, d) else: headA = self.move(headA, d) while True: if headA == headB: return headA else: headA = headA.next headB = headB.next