# 从尾到头打印链表(剑指Offer 06)
# 题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
# 示例
输入:head = [1,3,2]
输出:[2,3,1]
# 限制
- 0 <= 链表长度 <= 10000
# 算法
# reverse()
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
export const reversePrint = (head) => {
const arr = [];
while (head) {
arr.push(head.val);
head = head.next;
}
return arr.reverse();
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 递归
注意push()
返回的是操作后数组的长度length
,不能直接return
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
export const reversePrint = (head) => {
if (!head) return [];
let arr = reversePrint(head.next);
arr.push(head.val);
return arr;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13