c++ 来做链表(输入,打印出来),那里错了啊??

c++ 来做链表(输入,打印出来),那里错了啊??
#include
using namespace std;
struct Node
{
int coef;
int exp;
Node *next;
};

void create(Node* L, int l)
{
L = new Node;
L->next = nullptr;
Node* temp = L;
cout << "系数和次数";
for(int i = 0; i < l; i++)
{
Node* N = new Node;
cin >> N->coef;
cout << "X^";
cin >> N->exp;
cout << "+";
N->next = nullptr;
temp->next = N;
temp = N;
}
}
void print(Node* L)
{
Node* l;
l = L->next;
while(l != nullptr)
{
cout << l->coef << "X^" << l->exp << endl;
l = l->next;
}
}
int main()
{
Node* L1, * L2, *L3;
int l1, l2;
cin >> l1;
create(L1, l1);
print(L1);
}

c++

1个回答

create传入的不应该是一个Node*,它只是一个指针,你传递过去的可以看成一个 unsigned int 或者是一个形参,传递的指针过去只能对这个
指针指向的对象进行操作,不能修改这个指针,即L1的值,你可以传递一个指针引用,或者是传递一个指针的指针。即
Node ** 或者是 Node * &

weixin_43446156
weixin_43446156 回复rubikchen: L = new Node; L->next = nullptr; 还想请问一下,,这两句就是对L的修改吧,我可不可以把他弄到函数外去执行呢?
一年多之前 回复
weixin_43446156
weixin_43446156 L = new Node; L->next = nullptr; 还想请问一下,,这两句就是对L的修改吧,我可不可以把他弄到函数外去执行呢?
一年多之前 回复
rubikchen
502203305 回复weixin_43446156: 先别哭,记得采纳。
一年多之前 回复
weixin_43446156
weixin_43446156 哭了,谢谢大佬,卡了一个半小时了,砰砰砰
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐