剑指 Offer - 03 - 从尾到头打印链表
题目
输入一个链表的头结点,按链表值从尾到头的顺序返回一个 ArrayList。
解析
这题比较简单,可以用栈,也可以递归。
递归的写法:
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
private ArrayList<Integer> res;
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
res = new ArrayList<>();
rec(listNode);
return res;
}
private void rec(ListNode cur){
if(cur == null)
return;
rec(cur.next);
res.add(cur.val);
}
}
使用栈保存:
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<>();
ListNode cur = listNode;
while (cur != null) {
stack.push(cur.val);
cur = cur.next;
}
ArrayList<Integer> res = new ArrayList<>();
while (!stack.isEmpty())
res.add(stack.pop());
return res;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 剑指 Offer - 02 - 替换空格
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论