在一个长度大于2的单循环链表L中,P指针指向某结点,在P前插入S结点,要求在O(1)时间复杂度内完成,以下正确的是( )。
A:s->next=p->next;p->next=s; //将s结点插入到p之后t=s->data;s->data=p->data;p->data; //s结点和p结点的值互换
B:q=p->next;while(q->next!=p) q=q->next;s->next=p; q->next=s;
C:q=p->next;while(q->next!=p) q=q->next;q->next=s; s->next=p;
D:在p结点前插入s结点,而且要求在O(1)内,无法实现。
答案: s->next=p->next;p->next=s; //将s结点插入到p之后t=s->data;s->data=p->data;p->data; //s结点和p结点的值互换