反转链表
package linklist;
class Node {
Node next;
int data;
Node(int data) {
this.data = data;
}
}
public class ReverseLinkList {
static Node init() {
Node head = null;
Node pre = null;
for (int i = 0; i < 5; i++) {
Node node = new Node(i);
if (i == 0) {
node.next = null;
pre = node;
}
else {
node.next = pre;
pre = node;
}
}
return pre;
}
static Node reverseLinkList(Node head) {
Node pre = null;
Node next = null;
while (!(head == null)) {
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
public static void main(String[] args) {
Node pre = ReverseLinkList.init();
Node show = pre;
System.out.println("初始化之后的单链表");
while (!(show == null)) {
System.out.print(show.data + " ");
show = show.next;
}
Node head = pre;
System.out.print("\n");
Node reverseNode = ReverseLinkList.reverseLinkList(head);
System.out.println("反转之后的单链表");
while (!(reverseNode == null)) {
System.out.print(reverseNode.data + " ");
reverseNode = reverseNode.next;
}
}
}