对带头结点的单链表实现就地逆置的算法分析

试写一算法,对单链表实现就地逆置。


实现下列函数:
void Inverse(LinkList &L); 
/* 对带头结点的单链表L实现就地逆置 */


单链表类型定义如下:
typedef struct LNode{
    ElemType      data;
    struct LNode *next;

} LNode, *LinkList;

void Inverse(LinkList &L) 
/* 对带头结点的单链表L实现就地逆置 */
{
    LNode *curr,*next;
    curr = L->next;
    L->next = NULL;
    while(curr != NULL) {
        next = curr->next;
        curr->next = L->next;
        L->next = curr;
        curr = next;
    }
}




你可能感兴趣的:(数据结构)