当我们尝试实现链表时,为什么要创建节点指针而不是节点结构的原因我无法理解:
typedef struct node {
int val;
struct node * next;
} node_t;
并且
node_t * head = NULL;
head = malloc(sizeof(node_t));
if (head == NULL) {
return 1;
}
head->val = 1;
head->next = NULL;
在这里,为什么我们要将像
head
这样的节点声明为结构体指针而不是直接结构体呢?
node_t
应该包含一个node_t next
字段吗?这不会形成链接,而是嵌套的,导致一个无限大小的递归增长结构。 - Gerhardhnode_t
类型的变量包含另一个node_t
类型的变量作为成员,那么这个被包含的node_t
变量也会有一个node_t
类型的变量作为成员。你有没有尝试过实现这个功能?但是实际上它是行不通的。 - Cubic