class List {
ListNode *head;
ListNode *prev;
};
class ListNode {
int data;
ListNode *next;
friend class List;
ListNode(int d, ListNode *n) : data(d), next(NULL) {}
void insertM(int d) {
ListNode *ptr, *temp, *curr;
ptr = head;
while (ptr->data < d) {
prev = ptr;
ptr = ptr->next;
} // end while
temp = prev->next;
curr = new ListNode(d, ptr);
curr->next = prev->next; // or temp->next
prev->next = curr;
;
}
};
List mylist;
在这个函数中,我试图在链表的中间添加一个节点。其他功能在后面和前面添加项目就好了。当我在列表的中间添加时,我的prev-&gt; next链接到curr就好了,但是curr-&gt; next指向NULL。
我一直试图让这个程序工作超过1.5小时。我将感激你的帮助。这是作业。
答案 0 :(得分:1)
您要使用的一般程序是:
next
指针,直到您到达要插入的节点后(称之为A)next
指针以匹配A的next
指针next
指针更改为指向B 从您的代码中可以看出,您正在尝试维护整数的排序列表。这是家庭作业你可能不会得到代码片段,但是从浏览你的代码,我不得不问你为什么在你的节点构造函数中采用下一个参数,但是然后将下一个值设置为null。如果没有看到代码的其余部分,我无法确定,但我会将第9行的next(NULL)
更改为next(n)
,然后删除底部附近的curr->next
行< / p>