【发布时间】:2019-05-24 05:44:10
【问题描述】:
我通过了初始测试用例,但它显示了一个测试用例的错误答案。(测试用例中给出的链接列表:[0,9,1,2,4] 和 [3,2,4]。预期答案是值为 2 的节点,但我得到 4。)任何人都可以发现代码中的错误吗?
欢迎使用其他解决问题的方法,但我想用哈希图来做这件事以供我自己练习。
class Solution{
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
unordered_map<int, ListNode*> map;
int i=0;
while(headA!=NULL){ //inserting all nodes of LL A in hash map
map[i]=headA;
headA=headA->next;
i++;
}
while(1){
for (auto it = map.begin(); it != map.end(); it++) {
if (it->second == headB){
return it->second;
}
else{
if(headB->next!=NULL) {
headB=headB->next;
}
else{
break;
}
}
}
}
return NULL;
}
};
【问题讨论】:
-
好吧,一方面代码的格式不一致,这会让许多本来会看它的人望而却步。无论如何,请检查tour 和How to Ask 并提取minimal reproducible example。
标签: c++ linked-list hashtable unordered-map