解题思路:
1,先构造一个链表
2,定义一个栈,将链表元素放入到栈中
3,利用栈的先进后出,实现从尾到头返回
4,取出栈的元素放入到ArrayList,然后遍历
实现代码如下:
import java.util.ArrayList;
/**
*输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*import java.util.ArrayList;
*public class Solution {
* public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
*
* }
*}
*/
public class Solution类 {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> result = new ArrayList<Integer>();
ListNode temp = listNode;//这里需要构造一个ListNode类
while ( temp != null ) {//需要先判断链表时候为空
list.add( temp.val );//定义节点
temp = temp.next;
}
for ( int i = list.size()-1; i>=0; i-- ) {
result.add( list.get(i) );//遍历获得一个 ArrayList链表输出。
}
return result;
}
}
构造的ListNode类为:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
该博客介绍了如何使用Java通过栈来实现链表元素按从尾到头的顺序转换为ArrayList。首先,构造一个链表,然后创建一个栈并将链表元素压入栈中。最后,通过栈的先进后出特性,依次将元素添加到ArrayList中,从而完成反转操作。
534

被折叠的 条评论
为什么被折叠?



