插入双向链表的头部和尾部 - 仅打印出插入的最后一个尾部项目

时间:2017-03-15 06:47:27

标签: c insert doubly-linked-list

我正在尝试实施一个双向链表以便学习考试,并且在将项目插入尾部时会遇到一些麻烦 - 当我只插入列表中的头部时,它会正确打印出来。但是,当我插入列表中的尾部时,只打印出最后一个尾部项目。以下是我的完整代码:

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),
    );

我很感激帮助!

1 个答案:

答案 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函数

,请不要在主要内容中指定任何内容