0
我已經編寫了兩個linkedLists的交集的代碼。我嘗試了在Leetcode網站的 ,我的代碼沒有任何錯誤地運行。我正在嘗試使用主驅動中的自定義函數,而我沒有收到所需的輸出。整數列表的交集 - 無法返回結果列表
不知道我要去哪裏錯了。任何人都可以指出我錯過了什麼嗎?
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x): val(x), next(NULL) {}
};
class Solution {
public:
ListNode *getIntersection(ListNode *A, ListNode *B) {
ListNode *p1 = A;
ListNode *p2 = B;
if(p1==NULL || p2==NULL)
return NULL;
while(p1!=NULL && p2!=NULL && p1!=p2) {
p1=p1->next;
p2=p2->next;
if(p1==p2)
return p1;
if(p1==NULL) p1=B;
if(p2==NULL) p2=A;
}
return p1;
}
void print(ListNode *p) {
while(p!=NULL) {
cout<< p->val << " " ;
p=p->next;
}
cout<<endl;
}
};
int main() {
Solution s;
ListNode *p1 = new ListNode(5);
p1->next = new ListNode(11);
s.print(p1);
//similar for p2
ListNode *p2 = new ListNode(6);
p2->next = new ListNode(11);
s.print(p2);
s.getIntersection(p1,p2);
return 0;
}
編寫這樣的代碼時,確實有助於進行一些可靠的單元測試,以驗證它是否正常工作。你有這些嗎? – tadman