Hello everyone,
In Java, I am attempting to reverse a linked list. I am using the method stated in the blog article on how to reverse a linked list in java, but I am experiencing some difficulties.
This is my code:
public class ReverseLinkedList {
public static Node reverse(Node head) {
Node prev = null;
Node curr = head;
Node next = null;
while (curr != null) {
next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
public static void main(String[] args) {
Node head = new Node(1);
head.next = new Node(2);
head.next.next = new Node(3);
head.next.next.next = new Node(4);
Node reversedHead = reverse(head);
System.out.println(reversedHead.data); // 4
System.out.println(reversedHead.next.data); // 3
System.out.println(reversedHead.next.next.data); // 2
System.out.println(reversedHead.next.next.next.data); // 1
}
}
It is not working. I'm getting the error:
Exception in thread "main" java.lang.NullPointerException
at ReverseLinkedList.reverse(ReverseLinkedList.java:17)
at ReverseLinkedList.main(ReverseLinkedList.java:26)
Can anyone help?
Thanks.