下面是Java编程实现从尾到头打印链表代码实例的完整攻略。
1. 思路分析
从尾到头打印链表,可以想到两种方式:
- 反转链表,并正序打印
- 从尾到头遍历链表,借助栈的先进后出特性
我们可以选择使用第二种方式来实现。具体步骤如下:
- 从头到尾遍历链表,将节点值依次入栈
- 遍历完整个链表后,依次弹出栈的元素,即可实现从尾到头打印链表
2. 代码实现
2.1 定义ListNode类
首先,我们需要定义一个链表节点的类,用来构建链表。
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
2.2 实现printListFromTailToHead方法
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<>();
Stack<Integer> stack = new Stack<>();
ListNode cur = listNode;
// 遍历链表,将节点值入栈
while (cur != null) {
stack.push(cur.val);
cur = cur.next;
}
// 依次弹出栈顶元素,添加到输出数组中
while (!stack.empty()) {
list.add(stack.pop());
}
return list;
}
}
3. 测试示例
3.1 示例1:
ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
Solution solution = new Solution();
ArrayList<Integer> list = solution.printListFromTailToHead(head);
System.out.println(list);
输出结果为:
[3, 2, 1]
3.2 示例2:
ListNode head = new ListNode(1);
Solution solution = new Solution();
ArrayList<Integer> list = solution.printListFromTailToHead(head);
System.out.println(list);
输出结果为:
[1]
至此,Java编程实现从尾到头打印链表的完整攻略就结束了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java编程实现从尾到头打印链表代码实例 - Python技术站