输入一个链表,从尾到头打印链表每个节点的值。

来源:互联网 发布:淘宝有杰克琼斯么 编辑:程序博客网 时间:2024/06/06 06:43
/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
importjava.util.Stack;
importjava.util.ArrayList;
public class Solution{
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        Stack<Integer> s=newStack<>();//初始化一个栈
//这里总而言之就是将链表中所有节点中的值放入到栈中
        while(listNode!=null){//链表的节点,链表节点里面包括两个东西,一个是该节点的值,一个是指向下一个节点的指针
            s.push(listNode.val);//获得节点listNode的值
            listNode=listNode.next;//获得下一个节点的指针,并赋值给listNode
        }
      ArrayList<Integer> list= newArrayList<>();//定义一个数组列表,主要是因为printListFromTailToHead(ListNode listNode)
//方法的返回值为ArrayList<Integer>。
        while(!s.isEmpty()){//这里的步骤就是从放入到栈中的值取出来放入到list中来,栈是先进后出的,只允许在栈顶插入删除元素。
            list.add(s.pop());//pop()方法是从栈中取出栈顶的一个元素。
        }
        returnlist;
    }
}
阅读全文
0 0
原创粉丝点击