//判断有环链表是否相交 bool ifCircleListCross(ListNode * L1,ListNode * L2){ ListNode * node = ifCircle(L1); if(node!=NULL) return ifNodeOnList(L2,node); return 0; } 源代码: #include <stdio.h> #include<stdlib.h> #include <iostream> using namespace std; /** 4.判断两个【有环】...
// 遍历第二条链表,每遍历一个节点都去set集合中检查一下该节点是否加入过,如果加入过则该节点就是两个链表的相交节点 while (head2 != null) { if (set.contains(head2)) { return head2; } head2 = head2.next; } // 如果第二条链表都遍历完了都没有在set集合中找到相同的节点,则两条链表不相...
第一种情况(一个链表有环、一个链表无环)最简单,两个链表肯定不相交。 第二种情况(两个链表都无环),判断两个链表长度的差值x,长的链表先往后走x步,然后再让两个链表一起往后走,如果两个链表当前节点不相等就一直到往后走,直到走到链表尾部。 第三种情况(两个链表都有环),最复杂,其中又细分三种情况。 1>...