问题描述
我写了一个程序来创建和打印单个链表。我已经使用结构指针来修改列表的结构指针。当我打印列表时,它仅打印添加的最后两个节点。
release: python3 manage.py makemigrations && python3 manage.py migrate
web: daphne domecode.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python3 manage.py runworker channel_layer -v2
每次,我在列表末尾附加5到6个节点,并且在打印列表时,它只会最后打印到添加的节点上。 我不知道add_end函数或print函数有问题。
解决方法
您的add_line
例程错误地搜索了最后一个节点。 end
变量是一个指向指针的指针,因此它在某种意义上等同于head
参数,并且不是应该的临时值。将最后几行更改为以下内容:
void add_end(struct node **head){
...
struct node *end = *head;
while (end->next) {
end = end->next;
// Original line overwrites the 'head': (*end)=(*end)->next;
}
end->next=temp;
}