运行超时怎么办啊,代码时间复杂度也不高啊,有无人看还有哪里能改进时间的地方
代码如下:
```c
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
struct ListNode* tailA = headA;
struct ListNode* tailB = headB;
int a=0,b=0; //记录两个链表的长度
while(tailA){ //分别遍历两个链表,记录长度
tailA++;
a++;
}
while(tailB){
tailB++;
b++;
}
if(tailB != tailA){ //两个尾指针不一致,必然不相交
return NULL;
}
//相交求交点
tailA = headA; //链表指针归位
tailB = headB;
int c=0; //c等于两链表长度差
if (a<b){
c=b-a;
tailB+=c;//链表对齐
}
else{
c=a-b;
tailA+=c;//链表对齐
}
while(tailA!=tailB)
{
tailB++;
tailA++;
}
return tailA;
}
```