主要分析了链表尾部有环的时候怎么处理,无环的解法参考selfboot。 两个无环的链表 当链表无环时,分为有交点和无交点,而每种情况下又分为等长和不等长。当链表等长时,同时从头遍历两个链表,最晚在第一次遍历完成时就能判断并返回交点;当其不等长时,某链表遍历完成,使其指向另一个链表的头结点,在第二次遍历时就能找出相同的结点或者返回NULL。 ListNode* FindFirstCommonNode(ListNode* pHead1, ListNode* pHead2) { if (pHead1 == NULL || pHead2 == NULL) return NULL; ListNode*...