思路:
该题就是逆序打印单链表
1方式一:先将单链表进行反转,然后在打印,但是这样做会破坏原来的单链表的结构,不建议
2.方式二:可以利用栈这个数据结构,将各个节点压入到栈中,然后利用栈的先进后出的特点,就实现了逆序的效果。
public static void reversePrint(HeroNode head){
if(head.next==null){
return ; //空链表,不能打印
}
//创建一个栈 将各个节点压入栈中
Stack<HeroNode> stack = new Stack<HeroNode>();
HeroNode cur = head.next;
while(cur !=null){
stack.push(cur);
cur=cur.next;//cur后移。这样可以压入下一个节点
}
//将栈中的节点进行打印,pop出栈
while(stack.size()>0){
System.out.println(stack.pop());
}
}