[数据结构]单链表反转

来源:互联网 发布:海信32寸智能网络电视 编辑:程序博客网 时间:2024/06/03 21:04

点击打开链接

37 LinkList reverse_link(LinkListlist)38 {39    if(NULL == list40            || NULL == list->next)41        return list;424344    LinkList temp,prev,next;4546    prev = list;47    temp = list->next;48    prev->next = NULL;49     50    while(temp != NULL)51    {   52        next = temp->next;53        temp->next = prev;54        prev = temp;55        temp = next;56     }57    return prev;58 }


 

ListNode* ReverseIteratively(ListNode* pHead){       ListNode* pReversedHead = NULL;       ListNode* pNode = pHead;       ListNode* pPrev = NULL;      while(pNode != NULL)       {            // get the next node, and save it at pNext             ListNode* pNext = pNode->m_pNext;            // if the next node is null, the currect is the end of original             // list, and it's the head of the reversed list            if(pNext == NULL)                   pReversedHead = pNode;            // reverse the linkage between nodes             pNode->m_pNext = pPrev;            // move forward on the the list             pPrev = pNode;             pNode = pNext;       }      return pReversedHead;}

0 0