Description
难度简单 :剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
Solution
这道题属于非常简单的题目,利用循环将链表中的数据添加到 List 中,再反序输入 List 中的元素
public class Solution {public int[] reversePrint(ListNode head) {List<Integer> nums = new ArrayList<>();ListNode node = head;while(node != null){nums.add(node.val);node = node.next;}int[] res = new int[nums.size()];for (int i = 0; i < res.length; i ++)res[i] = nums.get((res.length-1) - i);return res;}}
递归的写法
class Solution {List<Integer> nums;public int[] reversePrint(ListNode head) {nums = new ArrayList<>();recursion(head);int[] res = new int[nums.size()];for(int i = 0; i < nums.size(); i ++)res[i] = nums.get(i);return res;}public void recursion(ListNode node){if (node == null)return;recursion(node.next);nums.add(node.val);}}
