首页 > 解决方案 > 在函数create_new_node中连接节点的所有链接是否可以?

问题描述

我正在学习链表,我只是想知道用函数 *create_new 连接新节点的所有链接是否是好/坏的做法。

从我在网上阅读的内容来看,它们只是下一个链接,但我也想让它连接上一个链接。这是我的代码:

node *create_new (int new_data, node *prev, node *next)
{
node *new_node = malloc(sizeof(node));
if (new_node == NULL)
{
    printf("Error in creating new node\n");
    exit(0);
}

new_node->data = new_data;
new_node->next = next;
prev->next = new_node;

return new_node;
}

标签: clinked-list

解决方案


您的代码有效。但是,对于单链表,您不需要通过next,因为prev->next应该指向next

node *create_new (int new_data, node *prev)
{
    node *new_node = malloc(sizeof(node));
    if (new_node == NULL)
    {
        printf("Error in creating new node\n");
        exit(0);
    }

    new_node->data = new_data;
    new_node->next = prev->next;
    prev->next = new_node;

    return new_node;
}

推荐阅读