题目
给你两个单链表的头节点 headA
和 headB
,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null
图示两个链表在节点 c1 开始相交:
题目数据保证整个链式结构中不存在环。
注意,函数返回结果后,链表必须保持其原始结构 。
方法一:链尾对齐
int listlen(ListNode * head){ /计算链表的长度
int len=0;
while(head!=NULL){
len++;
head=head->next;
}
return len;
}
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
int m,n;
ListNode *p,*q;
m=listlen(headA);
n=listlen(headB);
for(p=headA;m>n;m--){ //对齐
p=p->next;
}
for(q=headB;m<n;n--){ /