206. Reverse Linked List

来源:互联网 发布:孤岛危机3 优化 编辑:程序博客网 时间:2024/06/01 19:00

Problem:


Solution:

题目要求反转一个单链表,没有头结点的话稍微麻烦一点,需要两个辅助指针,一个指向已经完成反转的最后一个元素,开始时指向head,另一个用来暂存当前需要反转元素的下一个,以避免链表断链。这种方式类似于“头插法”,具体实施如下:
/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* reverseList(ListNode* head) {        if (head == NULL) return NULL;        ListNode* temp = head;        ListNode* temp1;        while (temp->next)        {            temp1 = temp->next->next;            temp->next->next = head;            head = temp->next;            temp->next = temp1;        }        return head;    }};


0 0