我对指针很新,我的一个练习问题是递归地向链表添加一个节点。这段代码有效,但我想知道这是否是解决这个问题的正确方法。
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;
}
}
答案 0 :(得分:0)
我怀疑你的代码中有两件事。
数据类型node
是什么,是否包含某些初始化所需的数据字段。目前将调用默认构造函数,因此使用您的函数添加的链接列表中的所有节点都是相同的。这可能也可能不行。 (取决于你的教授的想法。毕竟这是一个家庭作业问题。)
另一个不太清楚的问题是,您假设链表始终为非空。如果head为null,则您的函数将无效。我怀疑这没关系。