牛客网刷题之从尾到头打印链表

来源:互联网 发布:php图片管理系统 编辑:程序博客网 时间:2024/06/08 15:30

题目描述:

这里写图片描述

解题思路:

看到从尾到头几个字,第一反应就是用栈的后进先出特性来解决,实际上这也是其中的一种解决方法。

题解:

/***    public class ListNode {*        int val;*        ListNode next = null;**        ListNode(int val) {*            this.val = val;*        }*    }**/import java.util.ArrayList;import java.util.Stack;public class Solution {    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {        Stack<Integer> stack = new Stack<>();        while(listNode != null){            stack.push(listNode.val);            listNode = listNode.next;        }        ArrayList<Integer> list = new ArrayList<>();        while(!stack.isEmpty()){            list.add(stack.pop());        }        return list;    }}

ac结果:

这里写图片描述
后来看大家的题解,发现还有用递归来实现,其实想想,也是和用栈来实现是差不多的,这里直接附代码:

public class Solution {    ArrayList<Integer> list=new ArrayList<Integer>();    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {        if(listNode!=null){            this.printListFromTailToHead(listNode.next);            list.add(listNode.val);        }        return list;    }}   

当然也是可以ac的:
这里写图片描述

0 0