第20803题 单选题
C++双向链表插入操作横线处应填入哪项代码

下面的C++代码用于将字符串保存到带头节点的双向链表中,对重复的字符串计数,并将最新访问的字符串节点放在链头便于查找。横线处应填入的代码是:

typedef struct Node{
    string str;
    int ref;
    struct Node *next, *prev;
}Node;
Node * Insert(Node *pHead, string s)
{
    Node *p = pHead->next;
    Node *q;
    while(p) {
        if(p->str == s) {
            p->ref++;
            p->next->prev = p->prev;
            p->prev->next = p->next;
            break;
        }
        p=p->next;
    }
    if(!p) {
        p = new Node;
        p->str = s;
        p->ref=0;
        p->next = p->prev = NULL;
    }
    /* 横线处 */
    pHead->next = p, p->prev = pHead;
    return pHead;
}
{{ option.label }}
子题{{ index + 1 }} {{ child.type_label }}
{{ option.label }}
✓ 正确 ◐ 部分正确 ✗ 错误
程序运行统计
暂无判题统计
提交{{ questionInfo.stats ? questionInfo.stats.submit_count : 0 }}次 正确率{{ statsAccuracy }}%
答案解析