leetcode 206反转链表

35 阅读1分钟
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* prev = nullptr;
        ListNode* curr = head;
        ListNode* next = nullptr;
        while(curr) {
            next = curr->next;
            curr->next = prev;
            prev = curr;
            curr = next;
        }
        return prev;
    }
};

主要通过迭代实现,思路为每个节点的next全部改为前面的节点,链表也就自然反转了。 思路如下,初始化前指针、当前指针、后指针 while循环内部,将curr的next保存下来(后续需要修改curr的next,造成丢失),将curr->next修改。将prev、next同时向后移动。