Javaでのリンクリストの逆転方法


  1. 単方向リンクリストの逆転方法: 単方向リンクリストを逆転させるためには、3つのポインタを使用します: 現在のノード、前のノード、次のノード。以下は逆転の手順です。
class ListNode {
    int val;
    ListNode next;

    ListNode(int val) {
        this.val = val;
    }
}
public class LinkedListReversal {
    public ListNode reverseLinkedList(ListNode head) {
        ListNode prev = null;
        ListNode current = head;
        ListNode next = null;

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

        return prev;
    }
}
  1. 双方向リンクリストの逆転方法: 双方向リンクリストを逆転させる場合、各ノードに前のノードへの参照も必要です。以下は逆転の手順です。
class DoublyListNode {
    int val;
    DoublyListNode prev;
    DoublyListNode next;

    DoublyListNode(int val) {
        this.val = val;
    }
}
public class DoublyLinkedListReversal {
    public DoublyListNode reverseDoublyLinkedList(DoublyListNode head) {
        DoublyListNode current = head;
        DoublyListNode temp = null;

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

        if (temp != null) {
            head = temp.prev;
        }

        return head;
    }
}

これらのコード例を使用すると、Javaでリンクリストを逆転させることができます。必要に応じて、それぞれのコードをカスタマイズして使用してください。また、他のリンクリスト操作についても調査することをお勧めします。