Leetcode 206 Reverse Linked List

链表反转是非常经典的题目。包括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;
    }
};

 

posted @ 2018-09-01 22:16  ly-bnu  阅读(98)  评论(0)    收藏  举报