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]
}

Last updated