刷题——链表的逆序输出

输入一个链表,按链表值从尾到头的顺序返回一个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;
                }
 }

猜你喜欢

转载自blog.csdn.net/baidu_35752384/article/details/82463451