HackerRank Reverse a linked list(逆置鏈表)

題目鏈接

/*
  Reverse a linked list and return pointer to the head
  The input list will have at least one element  
  Node is defined as 
  struct Node
  {
     int data;
     struct Node *next;
  }
*/
Node* Reverse(Node *head)
{
    Node *p,*pPrev;
    if(!head||!head->next)      //鏈表爲空或者只有一個元素
        return head;
    p=head->next;
    head->next=NULL;            //尾結點
    while(p)
    {
        pPrev=p;
        p=pPrev->next;
        pPrev->next=head;
        head=pPrev;
    }
    return head;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章