Tag: 指针

Kotlin函数参数:Val不能被重新分配

我在科特林写过红黑树。 有趣的insertFixup在插入新元素( z:Node?是新元素)后恢复平衡。 从这里取得树木平衡的算法(2-3页)。 问题是Kotlin 不允许我重新分配 z.parent和z.parent.parent 。 我想z是一个指针 。 问题是如何让Kotlin明白我想从他那里得到什么? class Node(key: Int) {…} class BinarySearchTree { var root: Node? = null fun insert(newNode: Node) {…} fun RotateLeft(x: Node?) {…} fun RotateRight(x: Node?) {…} fun insertFixup(z: Node?) { var y: Node? while (z?.parent?.color == "RED") { if (z?.parent == z?.parent?.parent?.left) { y = z?.parent?.parent?.right […]