一,
非递归方式实现
import
java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Stack;
/**
* 输入一链表的头结点,从尾到头反过来打印出每个结点的值
* 非递归方式实现
*/
public class Revertlist {
public static void main(String[] args) throws ParseException {
MySingleLinkList node1=new MySingleLinkList();
MySingleLinkList node2=new MySingleLinkList();
MySingleLinkList node3=new MySingleLinkList();
node1.data=1;
node2.data=2;
node3.data=4;
node1.next=node2;
node2.next=node3;
revertList(node1);
}
public static void revertList(MySingleLinkList headNode){
Stack<MySingleLinkList> stack = new Stack<MySingleLinkList>();
while(headNode!=null) {
stack.push(headNode);
headNode = headNode.next;
}
while(!stack.empty()){
System.out.println(stack.pop().data);
}
}
}
二,递归方式实现
/**
* 输入一链表的头结点,从尾到头反过来打印出每个结点的值
* 递归方式实现
*/
public class RevertListRecur {
public static void main(String[] args){
MySingleLinkList node1=new MySingleLinkList();
MySingleLinkList node2=new MySingleLinkList();
MySingleLinkList node3=new MySingleLinkList();
node1.data=1;
node2.data=2;
node3.data=4;
node1.next=node2;
node2.next=node3;
revertList(node1);
}
public static void revertList(MySingleLinkList headnode){
if(headnode!=null){
if(headnode.next!=null){
revertList(headnode.next);
}
}
System.out.println(headnode.data);
}
}