struct Node{
int val;
Node* next;
};
我们使用这个结构体作为Node* Node而不是Node Node .为什么?任何参考资料的链接也将受到赞赏
我不这么认为。这是创建链接列表结构体的示例。当您想要制作一个列表时,未定义count of list。你可以使用struct: Node *next指针。这个指针将是列表下一个元素的保存地址。这样,你就可以从head元素访问next元素。如果接下来使用Node;下一步只是一个变量。
其他评论已经在某种程度上指出了这一点。当你定义一个结构体时,编译器需要知道存储这个新结构体类型的对象需要多少内存。
但是,如果你的结构体包含另一个相同类型的结构体(直接或间接),编译器无法计算实例化对象所需的大小(可以理解,因为它的大小会根据链接的次数而变化)。
因此,为了能够为对象分配足够的内存,您需要使用指针。这个指针在内存中的大小在编译时是已知的(不管它指向哪里,即使它是Null),所以编译器知道为您创建的每个Node对象分配多少内存。