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;
}

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/190500.html

(0)
上一篇 2021年11月14日 06:33
下一篇 2021年11月14日 06:33

相关推荐

发表回复

登录后才能评论