面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
- 题目
- 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
- 思路
- 使用栈依次存放输入的链表顺序的值,然后依次出栈便是链表的逆序。
- 代码
-
import java.util.ArrayList; import java.util.Stack; /** *描述逆序打印链表 * 输入:一个链表L1 * 输出:按链表值逆序返回一个Arraylist * */ public class ReversePrintList { /**需要定义节点,值和指针**/ static class ListNode{ int val; ListNode next=null; ListNode(int val){ this.val=val; } } public static ArrayList<Integer> ReverseList(ListNode L1){ Stack<Integer> sk1=new Stack<Integer>(); ArrayList<Integer> res=new ArrayList<Integer>(); if(L1==null){ return null; } while(L1!=null){//入栈 sk1.push(L1.val); L1=L1.next; } int len=sk1.size(); for(int i=0;i<len;i++){//出栈 res.add(sk1.pop()); } return res; } public static void main(String Args[]){ ListNode l1=new ListNode(1); ListNode l2=new ListNode(2); ListNode l3=new ListNode(3); ListNode l4=new ListNode(4); l1.next=l2; l2.next=l3; l3.next=l4; ReverseList(l1); ArrayList<Integer> a1=new ArrayList<Integer>(); a1=ReverseList(l1); System.out.print(a1); } } - 输出
-
[4, 3, 2, 1]
-
posted on 2018-10-21 21:57 moonlight.ml 阅读(169) 评论(0) 收藏 举报
浙公网安备 33010602011771号