从尾到头打印链表
题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
思路分析
- 两种思路:
- 1,递归 ,时间复杂度O(n), 空间复杂度O(n)
- 2,使用栈(后进先出), 时间复杂度O(n), 空间复杂度O(n)
代码
//使用栈
import java.util.ArrayList; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList list = new ArrayList(); Stack<Integer> stack = new Stack<>(); while(listNode != null){ stack.push(listNode.val); listNode = listNode.next; } while(!stack.empty()){ list.add(stack.pop()); } return list; } }
//使用递归
import java.util.ArrayList;
public class Solution {
ArrayList<Integer> list = new ArrayList();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if(listNode != null){
printListFromTailToHead(listNode.next);
list.add(listNode.val);
}
return list;
}
}

浙公网安备 33010602011771号