请问如何将单链表逆序倒置?

解决方案 »

  1.   

    用成双向链表最简介  或是在单向链表尾一次倒序增加N个节点(N=以有链表节点-1).然后从N/2节点入断开.设置成新链头.就可以了
      

  2.   

    呵呵,简单想了一下,思路如下,递归:
    convert(CNode * pFirst)
    {
      CNode * pNext=pFirst->_pNext;
      if (pNext==0)
      {
         pNext=pFirst;
         return;
       }
      else
        convert(pNext);
    }  
       
      

  3.   

    Node *Convert(Node *pHead)
    {
      assert(pHead != NULL); // 参数不可为空
      // 本函数返回新链表的头指针,采用递归算法
      
      if (NULL == pHead->next) // 仅有一个节点
      {
        return pHead;
      }  Node *pCur = pHead->next;
      if (NULL == pCur->next)
      {
        pCur->next = pHead;
        pHead->next = NULL;
        return pCur;
      }
        
      return  Convert(pCur);
    }