双向链表中交换两个节点
struct node* temp; //定义一个中间结构体存储q->last和p->next
temp->last=q->last;
temp->next=p->next;
p->next=q->next;
q->last->next=p;
p->last->next=q;
q->next=temp->next;
q->next->last=q;
q->last=p->last;
p->last=temp->last;
p->next->last=p;