创建递归函数以将节点添加到链接列表

时间:2016-11-06 15:58:36

标签: c++ pointers recursion data-structures linked-list

我对指针很新,我的一个练习问题是递归地向链表添加一个节点。这段代码有效,但我想知道这是否是解决这个问题的正确方法。

void addNode(node* head){
    if (head->next != NULL) 
        addNode(head->next);

    if (head->next == NULL) {
        node* newNode = new node;
        newNode->next = NULL;
        head->next = newNode;
  }
}

1 个答案:

答案 0 :(得分:0)

我怀疑你的代码中有两件事。

  1. 数据类型node是什么,是否包含某些初始化所需的数据字段。目前将调用默认构造函数,因此使用您的函数添加的链接列表中的所有节点都是相同的。这可能也可能不行。 (取决于你的教授的想法。毕竟这是一个家庭作业问题。)

  2. 另一个不太清楚的问题是,您假设链表始终为非空。如果head为null,则您的函数将无效。我怀疑这没关系。