- 単方向リンクリストの逆転方法: 単方向リンクリストを逆転させるためには、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;
}
}
- 双方向リンクリストの逆転方法: 双方向リンクリストを逆転させる場合、各ノードに前のノードへの参照も必要です。以下は逆転の手順です。
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でリンクリストを逆転させることができます。必要に応じて、それぞれのコードをカスタマイズして使用してください。また、他のリンクリスト操作についても調査することをお勧めします。