题目描述
输入一个链表,从尾到头打印链表每个节点的值。
public class Main7 {
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list=new ArrayList<Integer>();
if(listNode == null)//注意代码的鲁棒性
return list;
if(listNode.next==null)
{
list.add(listNode.val);
return list;
}
list=printListFromTailToHead(listNode.next);
list.add(listNode.val);
return list;
}
public static void main(String[] args) {
ListNode n1=new ListNode(1);
ListNode n2=new ListNode(2);
ListNode n3=new ListNode(3);
ListNode n4=new ListNode(4);
n1.next=n2;
n2.next=n3;
n3.next=n4;
n4.next=null;
ArrayList<Integer> list=printListFromTailToHead(n1);
}
}
public class Main7 {
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<Integer>();
Stack<Integer> stack = new Stack<Integer>();
if (listNode == null)// 注意代码的鲁棒性
return list;
while (listNode != null) {
stack.push(listNode.val);
listNode=listNode.next;
}
while(!stack.empty()){
list.add(stack.pop());
}
return list;
}
public static void main(String[] args) {
ListNode n1 = new ListNode(1);
ListNode n2 = new ListNode(2);
ListNode n3 = new ListNode(3);
ListNode n4 = new ListNode(4);
n1.next = n2;
n2.next = n3;
n3.next = n4;
n4.next = null;
ArrayList<Integer> list = printListFromTailToHead(n1);
}
}