Reverse Linked List

Reverse a singly linked list.

 

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* reverseList(struct ListNode* head) {
    if(head == NULL)
        return NULL;
    struct ListNode *nex = head->next, *pre = NULL;  //nex指向head的下一个,pre指向head的上一个
    while(nex != NULL)      //如果head的下一个节点不为空则进入
    {
        head->next = pre;    
        pre = head;
        head = nex;
        nex = nex->next;
    }
    head->next = pre;      //head的下一个节点为空,即到达了尾部,处理最后一次
    return head;
}

  

posted @ 2015-09-25 08:51  dylqt  阅读(136)  评论(0编辑  收藏  举报