链表基本功(相交链表)
这道题让我们求相交链表,乍一看没有思路诶,这玩意咋找,呃呃呃,忘了,想一下,首先是暴力思路写个n方的时间复杂度,从A的第一个元素开始,一个一个去遍历B,对比它们的地址是否相同,相同返回,不相同继续找下一个,知道遍历完A,如果找完了还没有找到说明不想交,就此返回。
代码给出如下:
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {auto ptr1=headA;auto ptr2=headB;while(ptr1!=nullptr){ptr2=headB;while(ptr2!=nullptr){if(ptr1==ptr2)return ptr1;ptr2=ptr2->next;}ptr1=ptr1->next;}return nullptr;}
};