满意答案
月半小夜猫
2013.07.25
采纳率:55% 等级:12
已帮助:6466人
C语言方法,若求其余语言请把分给满足你需求的那个吧 设链表结点结构 typedef struct Node{ DataType data; struct Node *next; //下一个结点 struct Node *prev; //上一个结点 }Node; 若head为头结点指针 则 Node *p1,*p2; p1 = head->next; //p1为第一个结点 p2 = p1->next; //p2为第二个结点 p2->next->prev = p1; //第二个结点的后继(第三个结点)的前驱为第一个结点 p1->next = p2->next; //第一个结点的后继为第二个结点的后继(第三个结点) p1->prev = p2; //第一个结点的前驱为第二个结点 p2->next = p1; //第二个结点的后继为第一个结点 p2->prev = head; //第二个结点的前驱为头结点 head->next = p2; //头结点的后继为第二个结点 完毕 ,以上是用两个临时指针的方法,更自由,下面是一个临时指针的方法 Node *p; p = head->next; //p为第一个结点 p->next->next->prev = p; //第三个结点的前驱为第一个结点 p->next->prev = head; //第二个结点的前驱为头结点 p->prev = p->next; //第一个结点的前驱为第二个结点 head->next = p->next; //头结点的后继为第二个结点 ---× p->next = p->next->next; //第一个结点的后继为第三个结点 head->next->next = p; //第二个结点(×行中以转为头结点的后继)的后继为第一个结点 完毕
00分享举报