Я реализую двусвязный список, используя kotlin. Но я получаю StackOverflow Error
Main
fun main(args: Array<String>) {
val doublyLinkedList = DoublyLinkedList()
doublyLinkedList.push(5)
doublyLinkedList.push(6)
doublyLinkedList.push(7)
doublyLinkedList.push(8)
doublyLinkedList.push(9)
println(doublyLinkedList.headNode)
}
DoublyLinkedList
class DoublyLinkedList {
var headNode: DNode? = null
var tailNode: DNode? = null
var length: Int = 0
fun isEmpty(): Boolean = length == 0
fun push(value:Any) {
val newNode = DNode(value =value )
if (isEmpty()){
tailNode = newNode
}else{
headNode?.prevNode = newNode
}
newNode.nextNode = headNode
headNode = newNode
length++
}
}
DataClass
data class DNode(var value: Any,
var prevNode: DNode? = null,
var nextNode: DNode? = null)
Ошибка
Exception in thread "main" java.lang.StackOverflowError
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:449)
at java.lang.StringBuilder.append(StringBuilder.java:136)
at ds.doublyLinkedList.DNode.toString(DNode.kt)
после 1-го элемента pu sh он показывает Исключение в потоке "main" java .lang.StackOverflowError . Почему это происходит какие-либо идеи.