剑指 Offer 06. 从尾到头打印链表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

 

示例 1:

输入:head = [1,3,2]
输出:[2,3,1]
 

限制:

0 <= 链表长度 <= 10000

原理:

链表只有一个头结点,想要到尾结点只能从头开始遍历

辅助空间

声明一个辅助空间,先遍历一遍确定辅助空间的大小,然后对辅助空间倒序打印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int[] reversePrint(ListNode head) {
ListNode first = head;
int len = 0;
while(head != null) {
head = head.next;
len ++;
}
int[] array = new int[len];
while(first != null) {
len--;
array[len] = first.val;
first = first.next;
}
return array;
}
}

博客首先发布于:

https://lvxiaoyi.top/