從尾到頭列印連結串列的節點值
阿新 • • 發佈:2019-02-20
輸入一個連結串列,從尾到頭列印連結串列每個節點的值。
思路:入參是頭指標,先從頭到尾遍歷一遍,把值儲存在list中,然後把list的元素頭尾交換,最後返回該list即是從尾到頭打印出的值.
import java.util.ArrayList; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Main { public static void main(String[] args) { ListNode listNode1 = new ListNode(1); ListNode listNode2 = new ListNode(2); ListNode listNode3 = new ListNode(3); ListNode listNode4 = new ListNode(4); listNode1.next = listNode2; listNode2.next = listNode3; listNode3.next = listNode4; ArrayList<Integer> listValue = new Main().printListFromTailToHead(listNode1); System.out.println(listValue.toString()); } /** * 方法體 * @param listNode 連結串列頭指標 * @return */ public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> listValue = new ArrayList<Integer>(); while (listNode != null) { listValue.add(listNode.val); listNode = listNode.next; } int size = listValue.size(), temp; for (int i = 0; i <= size / 2 - 1; i++) { temp = listValue.get(i); listValue.set(i, listValue.get(size - 1 - i)); listValue.set(size - 1 - i, temp); } return listValue; } } /*輸出: [4, 3, 2, 1]*/