C语言实现单链表反转

最近在考研复习,记录一下基础的数据结构算法,有事没事翻一翻,以防忘了

自己写了个翻转链表算法,感觉要比别人的要通俗易懂些

void Reverse(List *L){
    //分别是当前节点,直接前驱节点,直接后继节点
    LNode *current, *pre, *pnext;
    //初始化
    current  = L -> next;
    pre = NULL;
    while(current != NULL){

        //保留后继节点
        pnext = current -> next;
        //新的后继指向前驱实现反转
        current -> next = pre;

        //将当前节点向后移动
        pre = current;
        current = pnext;
    }
    return;
}

 

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