每日一练——从尾到头打印链表
题目:(剑指offer)输入一个链表,从尾到头打印链表每个节点的值。
import java.util.ArrayList;
public class wanwan {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
// 递归法
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if (listNode != null) {
this.printListFromTailToHead(listNode.next);
arrayList.add(listNode.val);
}
return arrayList;
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
import java.util.Stack;
import java.util.ArrayList;
public class wanwan {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
// 堆栈法
Stack<Integer> stack = new Stack<Integer>();
while (listNode != null) {
stack.push(listNode.val);
listNode = listNode.next;
}
ArrayList<Integer> arrayList = new ArrayList<Integer>();
while (!stack.isEmpty()) {
arrayList.add(stack.pop());
}
return arrayList;
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
思考
最后还是借助了还有点作用的百度,自己对链表这块基础似乎不太扎实。要加强这块和栈的基础,以及递归的基础。