题解 | #从尾到头打印链表#
从尾到头打印链表
http://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035
方法一:ArrayList中add操作:复杂度较高,因为每次添加都要复制一遍列表
/**
- public class ListNode {
- int val;
- ListNode next = null;
- ListNode(int val) {
- this.val = val;
- }
- }
- /
import java.util.ArrayList;
public class Solution {
public ArrayList<integer> printListFromTailToHead(ListNode listNode) {ArrayList<Integer> array = new ArrayList<>(); ListNode p = listNode; while(p!=null){ array.add(0,p.val); p = p.next; } return array;}
}
方法二:递归(参考)
/**</integer> - public class ListNode {
- int val;
- ListNode next = null;
- ListNode(int val) {
- this.val = val;
- }
- }
- /
import java.util.ArrayList;
public class Solution {
ArrayList<integer> array = new ArrayList<>();
public ArrayList<integer> printListFromTailToHead(ListNode listNode) {if(listNode!=null){ printListFromTailToHead(listNode.next); array.add(listNode.val); } return array;}
}</integer></integer>
查看2道真题和解析