需求:
给定一个链表的头部节点,从尾到头依次输出所有的节点值
分析:
1、思路一
比较容易想到的是,遍历链表,将节点值存到集合中,然后反向输出
2、思路二
一般是从前向后遍历链表,但此处要求反向输出,可以想到先进后出的数据结构是栈,因此可以创建栈,然后将节点值依次存到栈中,然后依次pop()
代码:
import java.util.*;
//节点类
class Node{
int val;//节点值
Node next;//节点的下一个节点
Node(int val){
this.val = val;
next = null;
}
}
class PrintList{
//创建链表,返回头节点
//输入整型数组,作为所有节点的值
public static Node getHead(int[] arr){
//创建集合,存储所有的节点
List<Node> list = new ArrayList<Node>();
//遍历数组
for(int i = 0; i < arr.length; i++){
list.add(new Node(arr[i]));
}
//将各个节点之间的关系联系起来
for(int i = 0; i < arr.length-1; i++){
list.get(i).next = list.get(i+1);
}
return list.get(0);//返回头节点
}
//正向输出链表
public static void printList(Node hea