面试题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]
      

        

上一篇:【云计算】K8S DaemonSet 每个node上都运行一个pod


下一篇:Cocos2d-X3.0 刨根问底(六)----- 调度器Scheduler类源码分析