从尾到头打印链表
1.题目要求:
输入一个链表的头结点后,从尾到头反过来打印出每个节点的值。
2.问题分析:
这个问题我们分为两点:
- 要有一个定义好的链表
- 要给链表逆序输出
3.开始干
3.1定义链表
public class ListNode
{
public String value;
public ListNode next;
public ListNode(String data)
{
this.value=data;
this.next = null;
}
3.2链表逆序
说起逆序就是最后的先输出,前面的最后输出。这就符合了栈的特性,我们把链表里的值都放在栈中,然后从栈中输出即可。代码如下:
public static void diaplay( ListNode a )
{
Stack<String> stack = new Stack<>();
while(a!=null)
{
stack.push(a.value);
a=a.next;
}
while(!stack.isEmpty())
{
System.out.println(stack.pop());
}
}
3.3main函数如下:
public static void main(String[] args) {
ListNode listnode = new ListNode("a");
listnode.next = new ListNode("b");
listnode.next.next = new ListNode("c");
listnode.next.next.next = new ListNode("d");
Test6.diaplay(listnode);
}
3.4运行结果如下: