• 定义两个指针, 第一轮让两个到达末尾的节点指向另一个链表的头部, 最后如果相遇则为交点(在第一轮移动中恰好抹除了长度差)
  • 两个指针等于移动了相同的距离, 有交点就返回, 无交点就是各走了两条指针的长度
    # -*- coding:utf-8 -*-
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    class Solution:
      def FindFirstCommonNode(self, pHead1, pHead2):
          # write code here
          a = pHead1
          b = pHead2
          while a != b:
              a = a.next if a else pHead2
              b = b.next if b else pHead1
          return a