题目描述
编写一个程序,找到两个单链表相交的起始节点。
题解
这就有点魔幻了。为啥连续做的两道题都是字节面试的编程题。。。带我缓缓,下午再做。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode *A,*B; A=headA;B=headB; while(A!=B) { if(!A&&!B) { A=headB; B=headA; } else if(!A) { A=headB; B=B->next; } else if(!B) { B=headA; A=A->next; } else { A=A->next; B=B->next; } } return A; }
|
两个指针把两条链表都走一遍就会相遇了。