我的代码是这样的。 它显示无法将节点转换为节点*。 请告诉我如何使用传递参考来实现它。
#include <iostream>
using namespace std;
struct node
{
int data;
node* next;
};
node* insertfront(node &root, int v)
{
node* temp = NULL;
temp->data = v;
temp->next = root;
return temp;
}
int main()
{
node* root;
root = insertfront(root,5);
return 0;
}
答案 0 :(得分:1)
您正在传递一个指向该函数的指针,您应该像那样传递它
root = insertfront(*root,5);
如果要引用节点,或更改功能
node* insertfront(node *&root, int v)
如果要引用指向节点的指针。
你也应该改变这个node* temp = NULL;
,你应该在堆上使用内存分配,我的意思是使用new
;
node *temp = new node;
我认为你的功能应该或多或少看起来像这样
node* insertfront(node *&root, int v)
{
node* temp = new node;
temp->data = v;
temp->next = root;
return temp;
}