C,单链表翻转函数

struct ST_StackNode
{
    int num; 
    datatype data; 
    struct ST_StackNode *pNext; //指针域
};
typedef struct ST_StackNode StackNode;

StackNode* reverse(StackNode* phead)
{
    if (phead == NULL){ return NULL; }
    if (phead->pNext == NULL) { return phead; }

    StackNode* pre, *cur, *next;

    cur = phead->pNext;
    phead->pNext = NULL;
    pre = phead;

    while (cur != NULL)
    {
        next = cur->pNext;
        cur->pNext = pre;
        pre = cur;
        cur = next;
    }
    phead = pre;
    return phead;
}

本文名称:C,单链表翻转函数
文章地址:http://azwzsj.com/article/pgdhdi.html