> For the complete documentation index, see [llms.txt](https://ryukiedev.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ryukiedev.gitbook.io/wiki/shu-ju-jie-gou-yu-suan-fa/jian-zhi-offerswift/06.-cong-wei-dao-tou-da-yin-lian-biao.md).

# 06.从尾到头打印链表

### 一、 题目

输入一个链表的头节点，从尾到头反过来返回每个节点的值（用数组返回）。

示例 1：

输入：head = \[1,3,2]

输出：\[2,3,1]

### 二、 解法

#### 2.1 辅助空间

```
func reversePrint(_ head: ListNode?) -> [Int] {
    var res: [Int] = [], node = head
    
    while let n = node {
        res.insert(n.val, at: 0)
        node = node?.next
    }
    
    return res
}
```

#### 2.2 递归

```
func reversePrint(_ head: ListNode?) -> [Int] {
    guard let node = head else {
        return []
    }
    return reversePrint(head?.next) + [node.val]
}
```
