206. Reverse Linked List


做题历程:

  1. 本题做了不止2次了,本次耗时10分钟独立解出

本题第一次做的时候确实把我折磨的够呛,不过以现在的眼光看,就是太简单了。。就是纯粹的基本功题,画一下图就全出来了,不过要记住加一个virtual node辅助

代码如下:

/**
 * 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 == nullptr) {
            return nullptr;
        }
        ListNode* node = head;
        ListNode* next_node = head->next;
        ListNode* virtual_node = new ListNode(-1);

        node->next = nullptr;
        while(next_node != nullptr) {
            virtual_node->next = next_node;
            next_node = next_node->next;
            virtual_node->next->next = node;
            node = virtual_node->next;
        }
        return node;
    }
};

results matching ""

    No results matching ""