思路:藉助棧實現,或使用遞歸的方法。
代碼:
public class NodeListPrint {
//當前節點的值
static class Node{
int val;
Node next;
public Node(int val){
this.val = val;
}
}
//每次放入一個節點值
public static List<Integer> printListFromTailToHead(Node node){
ArrayList<Integer> integerArrayList = new ArrayList<>();
//將數據放入棧中
Stack<Node> integerStack = new Stack<>();
while (null != node){
integerStack.push(node);
node = node.next;
}
while (!integerStack.isEmpty()){
integerArrayList.add(integerStack.pop().val);
}
return integerArrayList;
}
public static void main(String[] args){
Node node = new Node(1);
node.next = new Node(2);
node.next.next = new Node(3);
List<Integer> list = printListFromTailToHead(node);
for (Integer integer : list){
System.out.println(integer);
}
}
}