双向链表的转置可以采用交换节点的前后向指针很简单的实现。
双向链表的节点结构体定义为:
struct node
{
int element;
node * prev, *next;
};
其中 perv为前向指针,next为后向指针。
双向链表的逆序处理算法如下:
void Reverse(node *head) {
node * ptr;
ptr = head;
node* tmp;
while (ptr != NULL) {
node *s;
tmp = ptr->prev; ptr->prev = ptr->next; s=ptr->next; ptr->next = tmp;
ptr = s;
}
}