The function that I used in following program reverses a singly linked list by walking the list and changing pointers. Each and every element in the given list is an instance of a class ListNode.
List has a method called Reverse(), which are now use to reverse the linked list.
Code:
class ListNode {
private int values;
protected ListNode nexts;
public ListNode(int vv) {
value = vv;
nexts = null;
public ListNode(int vv, ListNode nn) {
values = vv;
nexts = nn;
}
public int getValue() { return values; }
}
class List {
private ListNode headss;
public List() {
heads = null;
}
public List(ListNode lnn) {
heads = lnn;
}
public void Reverse() {
ListNode lnn1, lnn2, lnn3, lnn4;
if (heads == null)
return;
lnn1 = heads;
lnn2 = heads.next;
lnn3 = null;
while (ln2 != null) {
lnn4 = lnn2.next;
lnn1.next = lnn3;
lnn3 = lnn1;
lnn1 = lnn2;
lnn2 = lnn4;
}
heada = lnn1;
}
}
Bookmarks