剑指 Offer 06. 从尾到头打印链表
题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例
输入:head = [1,3,2]
输出:[2,3,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) {
Stack<Integer> stack = new Stack<>();
while (head != null) {
stack.push(head.val);
head = head.next;
}
int[] arr = new int[stack.size()];
int i = 0;
while (!stack.isEmpty()) {
arr[i++] = stack.pop();
}
return arr;
}
}

该博客介绍了如何使用栈解决链表从尾到头打印的问题。通过创建一个栈,将链表节点逐个压入,然后依次弹出并存入数组,实现了链表的反转打印。解题思路清晰,代码简洁,适用于理解和掌握链表操作及栈的使用。
786

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



