链表的一些操作



定义一个链表:

typedef struct Node* {
     int data;
     Node* next;
}Node;

链表反转两种方法:


void  reverse_rcv(Node* head)

{

        if(head == NULLptr || head->next == NULL)

          return head;

          Node* second = head->next;

         Node* new_head = reverse_rcv(second);

        second->next = head;

       head->next = NULLptr;

      return new_head;

}


void reverse(Node* head)

{

       if(head == NULL || head->next = NULL)

            return head;

      Node *  p  = head->next;

      Node* p_pre = head;

      head->next = NULLptr;

     while(p ! = NULL)

    {

         Node* p_next = p->next;

         p->next = p_pre;

         p_pre = p;

         p = p_next;

   }

   return p_pre;

}

猜你喜欢

转载自blog.csdn.net/liulong1010/article/details/44171525