2

有的请解释

new_node->next = (*head_ref);
(*head_ref) = new_node;

这在下面的代码中

/* Utility function to insert a node at the beginning */
void push(struct node **head_ref, int new_data)
{
    struct node *new_node = (struct node *) malloc(sizeof(struct node));
    new_node->data = new_data;
    new_node->next = (*head_ref);
    (*head_ref) = new_node;
}
4

2 回答 2

0

这就是在 C 中如何将一个简单的节点添加到链表的开头。代码只保存对头部的引用,当添加一个新节点时,它被添加到开头,新插入的节点被认为是新的头。

在您的代码中,第一行在开头添加了新节点。这是通过将当前列表(由标题指向)附加到下一个新节点。

第二行,将新节点标记为列表头。

请查看下面的链接以获取对上述逻辑的全面图解说明

http://www.thelearningpoint.net/computer-science/data-structures-singly-linked-list-with-c-program-source-code

于 2013-10-05T07:53:39.137 回答
0

正是评论所说的。在开头插入新节点,并更新 head_ref 以指向新的开头。

于 2013-10-05T07:40:28.100 回答