双向循环链表中要在结点 p 之前插入新结点 s(均非空),以下指针操作正确的是( )。
- A. ```cpp
s -> next = p;
p -> prev = s;
p -> next = s;
s -> prev = p;
- **B.** ```cpp
s -> prev = p;
s -> next = p -> next;
p -> next -> prev = s;
p -> next = s;
- C. ```cpp
s -> next = p;
s -> prev = p->prev;
p -> prev -> next = s;
p -> prev = s;
- **D.** ```cpp
s -> next = p;
s -> prev = nullptr;
p -> prev = s;