从尾到头打印链表
原文链接:http://blog.csdn.net/qq_22329521/article/details/52948057
通常我们打印是一个只读操作,不希望打印时修改内容。
解决思路,用栈来处理,后进先出的思想
另一种用递归来操作,但不利于层级太深
public class ListNode {
private int value;
private ListNode next;
public ListNode(int value) {
this.value = value;
}
public ListNode(int value, ListNode next) {
this.value = value;
this.next = next;
}
public void setValue(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public void setNext(ListNode next) {
this.next = next;
}
public ListNode getNext() {
return this.next;
}
}
public static void test1(ListNode node) {
Stack mStack = new Stack<>();
while (node != null) {
mStack.push(node);
node = node.getNext();
}
while (!mStack.empty()) {
System.out.print(mStack.pop());
}
}
//递归解决
public static void test2(ListNode node) {
if (node != null) {
if (node.getNext() != null) {
test2(node);
}
System.out.print(node);
}
}