C++双向链表插入操作横线处应填入哪项代码

fb075681 单选题 共 个子题

下面的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;
}
A

if(pHead) {p->next = pHead->next, pHead->next->prev = p;}

B

if(pHead->next) {p->next = pHead->next, pHead->next->prev = p;}

C

p->next = pHead->next, pHead->next->prev = p;

D

触发异常,不能对空指针进行操作。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧