import scala.collection.mutable.Stack
def deleteMiddle[T](stack: Stack[T]): Unit = {
if (stack.isEmpty) return
val mid = stack.size / 2
deleteKth(stack, mid)
}
private def deleteKth[T](stack: Stack[T], k: Int): Unit = {
if (k == 0) {
stack.pop()
return
}
val top = stack.pop()
deleteKth(stack, k - 1)
stack.push(top)
}
@main def run(): Unit = {
val st = Stack(1, 2, 3, 4, 5, 6, 7)
deleteMiddle(st)
println(st)
}
/*
run:
Stack(1, 2, 3, 5, 6, 7)
*/