[数据结构]单链表反转

  1. 37 LinkList reverse_link(LinkListlist)  
  2. 38 {  
  3. 39    if(NULL == list  
  4. 40            || NULL == list->next)  
  5. 41        return list;  
  6. 42  
  7. 43  
  8. 44    LinkList temp,prev,next;  
  9. 45  
  10. 46    prev = list;  
  11. 47    temp = list->next;  
  12. 48    prev->next = NULL;  
  13. 49       
  14. 50    while(temp != NULL)  
  15. 51    {     
  16. 52        next = temp->next;  
  17. 53        temp->next = prev;  
  18. 54        prev = temp;  
  19. 55        temp = next;  
  20. 56     }  
  21. 57    return prev;  
  22. 58 }  


 

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
    1. ListNode* ReverseIteratively(ListNode* pHead)  
    2. {  
    3.        ListNode* pReversedHead = NULL;  
    4.        ListNode* pNode = pHead;  
    5.        ListNode* pPrev = NULL;  
    6.       while(pNode != NULL)  
    7.        {  
    8.             // get the next node, and save it at pNext  
    9.              ListNode* pNext = pNode->m_pNext;  
    10.             // if the next node is null, the currect is the end of original   
    11.             // list, and it's the head of the reversed list  
    12.             if(pNext == NULL)  
    13.                    pReversedHead = pNode;  
    14.   
    15.             // reverse the linkage between nodes  
    16.              pNode->m_pNext = pPrev;  
    17.   
    18.             // move forward on the the list  
    19.              pPrev = pNode;  
    20.              pNode = pNext;  
    21.        }  
    22.   
    23.       return pReversedHead;  
    24. }  

转载于:https://www.cnblogs.com/zhiliao112/p/4237160.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值