How to delete the middle element from a list in Kotlin

1 Answer

0 votes
fun <T> deleteMiddle(list: MutableList<T>) {
    if (list.isEmpty()) return
    val mid = list.size / 2          // 0‑based middle index
    
    deleteKth(list, mid)
}

private fun <T> deleteKth(list: MutableList<T>, k: Int) {
    if (k == 0) {
        list.removeAt(list.lastIndex)   // remove middle
        
        return
    }

    val top = list.removeAt(list.lastIndex)
    deleteKth(list, k - 1)
    
    list.add(top)                        // restore elements
}

fun main() {
    val list = mutableListOf(1, 2, 3, 4, 5, 6, 7)
    
    deleteMiddle(list)
    
    println(list)  
}



/*
run:

[1, 2, 3, 5, 6, 7]

*/

 



answered Dec 24, 2025 by avibootz
...