Leetcode

Leetcode.206.Reverse Linked List

2019-11-27  本文已影响0人  Jimmy木

题目

给定一个单向链表, 将链表反转.

Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL

思路

遍历链表, 每次都将当前节点加到上一个节点后面.

ListNode* reverseList(ListNode* head) {
    if (head == nullptr) return head;
    ListNode *after = nullptr;
    while (head != nullptr && head->next != nullptr) {
        ListNode *temp = new ListNode(head->val);
        temp->next = after;
        after = temp;
        head = head->next;
    }
    head -> next = after;
    return head;
}

总结

使用了额外内存空间, 还可以不创建新的节点来实现.

上一篇下一篇

猜你喜欢

热点阅读