题意:
求两个链表的交集,是引用相同,不是值相同,即后面引用了相同的链表。
解法:
我的解法:
分别求出两个链表的长度,然后将长度长的先循环两个链表长度的差值次数,然后同时遍历找到相同的引用的开始点。
别人的解法:
用两个指针分别指向两个链表,然后开始遍历判断,无论哪个先遍历完,然后指向另一个链表进行遍历。(有点像将AB两个链表串联起来,一个是AB,另一个是BA,然后遍历,因为长度一样,排除了两个链表长度不一样带来的问题,保证AB和BA的尾部是对齐的。)
ListNode* hA =headA;
ListNode* hB =headB;
while(hA!=hB){
hA=hA==NULL?headB:hA->next;
hB=hB==NULL?headA:hB->next;
}
总结:
虽然对链表熟悉了一些,但是理解上还不是很深刻,不能很好利用链表所带有的性质。