剑指offer--链表
2020-03-14 本文已影响0人
机智的柠檬
参考:https://www.cnblogs.com/qmillet/p/11951940.html
附1:Stack API
image.png |
---|
附2:ArrayList API
| image.png题一:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
方法一:使用递归方法
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
import java.util.ArrayList;
public class Solution {
ArrayList list = new ArrayList();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if(listNode!=null){
printListFromTailToHead(listNode.next);
list.add(listNode.val);
}
return list;
}
}
方法二:
import java.util.*;
public class Solution {
ArrayList list = new ArrayList();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack 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 {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList list = new ArrayList();
while(listNode!=null){
list.add(0,listNode.val);//相当于insert,在0位置插入元素
listNode = listNode.next;
}
return list;
}
}