链表逆序 和 寻找链表中间节点

已知链表的头节点为head,写一个函数把链表逆序。

void reserve(list_node* head){
     if(head == NULL)
       return 0;
     list_node* p = head;
     list_node* q = p->next;
     list_node* r = NULL;
     while(q){
        r = q->next;
        q->next = p;
        p = q;
        q = r;
   }
      head->next == NULL;
      head = p;
}

找出单链表的中间节点

list_node* findMiddleNode(list_node* head){
   if(head == NULL || head->next == NULL){
       return 0;
    }
    list_node* p = head;
    list_node* q = head; 
   while(q->next!=NULL&&q->next->next!=NULL){
    p = p->next;
    q = q ->next->next;
   }
    return p;
}

  

posted @ 2016-05-08 09:58  zqlmmd  阅读(241)  评论(0编辑  收藏  举报