题目:
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
利用递归的方式,先遍历后面的节点,然后再加数据。
/**
* 从尾到头打印链表
* 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
*/
public class Solution {
ArrayList<Integer> list = new ArrayList<>();
public static void main(String[] args) {
Solution solution = new Solution();
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(3);
ListNode listNode4 = new ListNode(4);
ListNode listNode5 = new ListNode(5);
listNode1.next = listNode2;
listNode2.next = listNode3;
listNode3.next = listNode4;
listNode4.next = listNode5;
solution.printListFromTailToHead(listNode1);
for (Integer i : solution.list) {
System.out.println(i + ",");
}
}
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if (listNode != null) {
if (listNode.next != null) {
printListFromTailToHead(listNode.next);
}
list.add(listNode.val);
}
return list;
}
}
本文介绍了一种使用递归方法从尾到头打印链表元素的算法。通过先递归遍历到链表尾部,再逐个将节点值添加到ArrayList中,实现了链表元素的逆序输出。
980

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



