3->5->6->9
public class JZ3 {
public static void main(String[] args) {
ListNode head = new ListNode(3);
ListNode node2 = new ListNode(5);
ListNode node3 = new ListNode(6);
ListNode node4 = new ListNode(9);
head.next=node2;
node2.next=node3;
node3.next=node4;
System.out.println(printList(head).size());
}
public static ArrayList printList(ListNode listNode){
ArrayList list = new ArrayList();
Stack stack = new Stack();
while(listNode!=null){
stack.push(listNode.val);
listNode=listNode.next;
}
//其实Collections有reverse()方法可以直接反转,不必借助stack
while(stack.empty()==false){
list.add(stack.pop());
}
return list;
}
}
class ListNode{
int val;
ListNode next;
ListNode(int val) {
this.val=val;
}
}
网上的递归法,比较优雅:
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> ret = new ArrayList<>();
if (listNode != null) {
ret.addAll(printListFromTailToHead(listNode.next));
ret.add(listNode.val);
}
return ret;
}