题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
举例:已知链表:1->2->3,输出:[3,2,1]
思路:使用栈,栈具有先进后出的特点。
代码实现:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int[] reversePrint(ListNode head) {
int size = 0;
Stack<Integer> stack = new Stack<>();
while(head !=null){
size++;
stack.push(head.val);
head = head.next;
}
int[] nums = new int[size];
size = 0;
while(!stack.empty()){
nums[size++] = stack.pop();
}
return nums;
}
}
这篇博客介绍了如何使用栈来实现链表的反转输出,从链表的尾部开始返回每个节点的值。通过创建一个栈,将链表的节点值依次压入栈中,然后弹出栈顶元素,构建一个新的数组,从而实现从尾到头的顺序。这种方法利用了栈的先进后出特性,简洁高效。
1063

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



