- 思路
栈 —— 原链表数据从头到尾依次进栈,出栈存入到输出链表中即为逆序。 - 代码(JAVA)
import java.util.ArrayList;
import java.util.Stack; //使用栈需要导入相应的库
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<Integer>(); //新建一个栈stack
while(listNode!=null) { //链表listNode不为空,执行循环语句
stack.push(listNode.val); //值入栈
listNode = listNode.next; //指向下一个
}
ArrayList<Integer> list = new ArrayList<Integer>(); //新建一个数组list
while(!stack.isEmpty()) { //判断栈是否为空,不为空执行循环语句
list.add(stack.pop()); //出栈,加入新的数组list
}
return list; //list存储的元素即为listNode的逆序
}
}
- 如有错处或者更好的解法,欢迎评论区讨论ovo 感谢