/// 取出栈底的数func getAndRemoveLastElement(_ items: inout [Int]) -> Int { let value = items.remove(at: 0) if (items.isEmpty) { return value } let last = getAndRemoveLastElement(&items) items.insert(value, at: 0) return last}func reverse(_ items: inout [Int]) { if (items.isEmpty) { return } let value = getAndRemoveLastElement(&items) reverse(&items) // 逆序把栈底的数放回数组中,完成逆序 items.append(value) }var data = [1, 2, 3, 4, 5]reverse(&data)print(data)
仅用递归函数操作逆序一个栈
仅用递归函数,栈操作,来逆序一个栈