链表:简单 - 从尾到头打印链表 By Swift

455 阅读1分钟
  • 题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]

限制:
0 <= 链表长度 <= 10000
  • 思路 借助栈先进后出的特性来存储元素。

  • 代码:

class Solution {
    func reversePrint(_ head: ListNode?) -> [Int] {
        var stack = [Int]()
        var cur = head
        while cur != nil {
            stack.append(cur!.val)
            cur = cur?.next
        }
        
        var result = [Int]()
        
        while !stack.isEmpty {
            result.append(stack.popLast()!)
        }
        return result
    }
}