思路:
1、上面的题的要求就是逆序打印单链表
2、方式1:先将单链表进行反转操作,然后再遍历即可,这样的做法的问题是会破坏原来的单链表的结构,不建议
3、方式2:可以利用栈这个数据结构,将各个节点压入到栈中,然后利用栈的先进后出的特点,就实现了逆序打印的效果
public static void reverseList(Node head) {
if (head.next == null || head.next.next == null) {
return;
}
//创建一个栈,将各个节点压入栈
Stack<Node> stack = new Stack<>();
Node cur = head.next;
//将链表所有的节点压入栈
while (cur != null) {
stack.push(cur);
cur = cur.next;
}
while (stack.size() > 0) {
System.out.println(stack.pop());
}
}