Skip to content

Latest commit

 

History

History
81 lines (65 loc) · 1.57 KB

20200824.md

File metadata and controls

81 lines (65 loc) · 1.57 KB

Algorithm

从尾到头打印单链表

Description

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

Solution

方式一:

/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
import java.util.ArrayList;
public class Solution {
  ArrayList<Integer> arrayList = new ArrayList<Integer>();
  public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
      if(listNode!=null){
          printListFromTailToHead(listNode.next);
          arrayList.add(listNode.val);
      }
      return arrayList;
  }
}

方式二

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

Discuss

方法一: 递归方式

方法二: 使用栈的方式

Review

Tip

Share