1.題目

2.思路
408原題,
a指標在A鏈表開頭遍歷,到達結尾時,a指標跑到B鏈表頭開始遍歷,b指標同理,

根據
S
1
+
S
3
+
S
2
S1+S3+S2
S1+S3+S2和
S
2
+
S
3
+
S
1
S2+S3+S1
S2+S3+S1相等,即遍歷完這三坨后會剛好到達交點(如果相交的話);而如果不相交則最后結束的相同指標為NULL,
特殊情況下,S1和S2等長,那么還沒遍歷完一條鏈表就能找到交點了,
3.代碼
/**
* 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) {
ListNode* a=heada;
ListNode* b=headb;
while(a!=b){
if(a==NULL){
a=headb;
}else{
a=a->next;
}
if(b==NULL){
b=heada;
}else{
b=b->next;
}
}
return a;
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259138.html
標籤:其他
上一篇:leetcode:1023. 駝峰式匹配(雙指標,中等,貪心)
下一篇:3 動態陣列 2 介面設計
