我正在尝试创建此函数,该函数将返回两个链接列表的第一个共享节点。但是,即使尝试了很长时间,仍然存在无法修复的错误。
这是我的代码:
#include <iostream>
#include <cstdio>
#include <stdlib.h>
#include <stack>
#include "LinkList.hpp"
using namespace std;
void FindFirstSharedNode(ListNode *pNode1, ListNode *pNode2, ListNode *pShared)
{
stack<ListNode> stack1;
stack<ListNode> stack2;
if(pNode1!=nullptr && pNode2!=nullptr)
{
while(pNode1!=nullptr)
{
stack1.push(*pNode1);
pNode1=pNode1->m_pNext;
}
while(pNode2!=nullptr)
{
stack2.push(*pNode2);
pNode2=pNode2->m_pNext;
}
ListNode *node1=nullptr;
ListNode *node2=nullptr;
while(!stack1.empty() && !stack2.empty())
{
(*node1)=stack1.top(); //Xcode bug: Thread 1: EXC_BAD_ACCESS (code=1, address=0x8)
(*node2)=stack2.top();
if(pNode1==pNode2)
{
*pShared=*pNode1;
stack1.pop();
stack2.pop();
}
}
cout<<pShared->m_nKey<<" ";
我看不出问题出在哪里? 有人可以告诉我吗? 非常感谢。