链表的逆序输出
public class Result {
public static void main(String [] args){
Node n1 = new Node();
n1.value=1;
Node n2 = new Node();
n2.value=2;
Node n3 = new Node();
n3.value=3;
Node n4 = new Node();
n4.value=4;
Node n5 = new Node();
n5.value=5;
Node n6 = new Node();
n6.value=6;
n1.next = n2;
n2.next = n3;
n3.next = n4;
n4.next = n5;
n5.next = n6;
// Node result = reverse(n1);
// printList(result);
Node recursiveNode = recursive(n1);
printList(recursiveNode);
}
private static Node recursive(Node head) {
if (head == null || head.next == null){
return head;
}
Node reHead = recursive(head.next);
head.next.next = head;
head.next = null;
return reHead;
}
private static Node reverse(Node head) {
if (head == null || head.next == null){
return head;
}
Node rehead = null;
while (head != null){
Node p = head.next;
head.next = rehead;
rehead = head;
head = p;
}
return rehead;
}
private static void printList(Node n1) {
if (n1 == null){
return;
}
Node n = n1;
while (n != null){
System.out.println(n.value);
n = n.next;
}
}
}