本文参考:
http://blog.csdn.net/g_brightboy/article/details/6824834
http://blog.csdn.net/huangxy10/article/details/8014233
在此致谢。
- 问题:
给定两个链表,判断它们是否相交。
注意:
如果两个链表相交的话,则公用相交点开始往后的所有节点。【因为节点的next指针只有一个!】
解答:
1)首先来看最直观的方法,也就是一次判断链表A中的节点是否在链表B中出现。
时间复杂度:O(n2)
空间复杂度:O(1)
1 bool List::isIntersect(Node* listA,Node* listB){ 2 for(Node* headA = listA; headA != NULL ; headA = headA->next){ 3 for(Node* headB = listB; headB != NULL; headB = headB->next){ 4 if(headA == headB) 5 return true; 6 } 7 } 8 return false; 9 }