How to delete the middle element of a stack in Scala

1 Answer

0 votes
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)

*/

 



answered Dec 24, 2025 by avibootz
...