【前提】
Node定义和链表的操作代码 参照 Java 单链表操作
【解题思路-】
Java中利用栈的“”FILO“”功能完成逆向打印
private static void inversePrinting(MyLinkList linklist) {
// TODO Auto-generated method stub
Node node=linklist.head;
Stack <Node> stack=new Stack<Node>();
//System.out.println(node.value);
while(node!=null){
stack.push(node);
node=node.next;
}
while(!stack.isEmpty()){
node=stack.peek();
System.out.print(node.value+" ");
stack.pop();
}
System.out.println();
}
【解题思路2】
利用递归思想,每次先打印当前节点以后的其他节点的内容
private static void inversePrinting_Recursively(Node phead) {
// TODO Auto-generated method stub
if(phead!=null){
if(phead.next!=null){
inversePrinting_Recursively(phead.next);
}
System.out.print(phead.value+" ");
}
}