输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
package timufuxi;
import java.util.ArrayList;
public class kaoshi3 {
public static void main(String[] args) {
ListNode listNode = new ListNode(1);
listNode.next = new ListNode(3);
listNode.next.next = new ListNode(4);
listNode.next.next.next = new ListNode(0);
Solution s = new Solution();
System.out.println(s.printListFromTailToHead(listNode));
//本质上建立的链表是1->3->4->0;这里要清醒的明白的是1是头,0是尾。
//题目3就是链表的逆序输出
}
}
class Solution
{
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
//创建返回值为Integer类型的动态数组列表,该函数以ListNode类的对象作为形参
ArrayList<Integer> list = new ArrayList<Integer>();
//创建一个空的整型数组列表
ArrayList<Integer> result = new ArrayList<Integer>();
ListNode temp = listNode;//形参值传递
//ListNode是由自己定义的java中的链表对象
while ( temp != null )
{
list.add( temp.val );
temp = temp.next;
}
for ( int i = list.size()-1; i>=0; i-- )
{
result.add( list.get(i) );
}
return result;
}
}
class ListNode
{
int val;
ListNode next = null;
ListNode(int val)
{
this.val = val;
}
}