我正在尝试实施一个双向链表以便学习考试,并且在将项目插入尾部时会遇到一些麻烦 - 当我只插入列表中的头部时,它会正确打印出来。但是,当我插入列表中的尾部时,只打印出最后一个尾部项目。以下是我的完整代码:
this.objData$ = af.database.object('/data');
this.objData$.flatMap(result => result)
.subscribe(
result => this.componentVar.push(result), //the componentVar is type 'any'; I've also tried type '[]'
error => console.log(error),
);
我很感激帮助!
答案 0 :(得分:1)
您正在从tailInsert返回temp(最后一个节点)并分配给head。如果要插入尾部,请不要更改头部指针。
void tailInsert(node *head, int data)
{
if(head->next == NULL)
{
node *temp;
temp = createNode(data);
temp->next = NULL;
temp->prev = head;
head->next = temp;
return ;
}
tailInsert(head->next, data);
}
如果您正在调用tailInsert
函数