链表反转是非常经典的题目。包括cur(current)和prev比较容易理解。为什么需要next,如果直接cur->next = prev,就会造成断链。
循环体三步操作是:
1. cur->next = prev;
2. prev = cur;
3. cur = next;
class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* cur = head; ListNode* prev = NULL; while (cur != NULL) { ListNode* next = cur->next; if (cur->next == NULL) { revHead = cur; } cur->next = prev; prev = cur; cur = next; } return prev; } };