✏️ 纠错
第 179 题 / 共 251 题
第3题 基于上题代码正确的前提下,填入相应代码完善append(),用于在双向链表尾部增加新节点,横线上应填写( )。
void append(int data) {
    Node* newNode = new Node{data, nullptr, nullptr};

    if (is_empty()) {
        head = tail = newNode;
    } else {
    _________________________
    }
    ++size;
}
📝 题目解析

答案:D

知识点:双向链表的插入操作,链表节点指针的调整

解析:在尾部添加节点需完成三步:1.原尾节点的next指向新节点;2.新节点的prev指向原尾节点;3.更新tail为新节点。A缺少后两步,B缺少第一步,C顺序错误(先更新tail会导致指针错误),因此D正确。