Coding

206. Reverse Linked List

2024-03-21 1 min read

題目敘述

Given the head of a singly linked list, reverse the list, and return the reversed list.

Example 1

Input: head = [1,2,3,4,5] Output: [5,4,3,2,1]

Example 2

Input: head = [1,2] Output: [2,1]

Example 3

Input: head = [] Output: []

ListNode 的 class 內容

// Definition for singly-linked list.
public class ListNode {
    int val;
    ListNode next;
    ListNode() {}
    ListNode(int val) { this.val = val; }
    ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}

解題思路

Solution

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = new ListNode();
        ListNode next = new ListNode();

        curr = head;

        while(curr != null){
            next = curr.next;
            curr.next = prev;
            prev = curr;
            curr = next;
        }

        return prev;
    }
}
← Posts
meow~