上图要求倒序打印单链表。
思路:
- 方法一:先将单链表进行反转操作,然后再遍历即可,这样做的问题是会破话原来的单链表的结构,不建议。
- 方法二:可以利用栈这个数据结构,将各个节点压入到栈中,然后利用栈的先进后出的特点,就实现了逆序打印的效果。
//使用栈逆序打印单链表
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;
}
//将栈中的节点进行打印
while (stack.size()>0){
System.out.println(stack.pop());
}
}