카테고리 없음

백준 5639번 코틀린

toonraon 2022. 6. 8. 17:56
fun main() {

    // 노드 추가
    fun putNode(parent: Node, newNode: Node) {
        if (parent.num > newNode.num) {
            if (parent.left == null) parent.left = newNode else putNode(parent.left!!, newNode)
        } else {
            if (parent.right == null) parent.right = newNode else putNode(parent.right!!, newNode)
        }
    }

    // 전위 순회
    val root = Node(readLine()!!.toInt())
    while (true) {
        val input = readLine()?.toInt() ?: break
        val newNode = Node(input)

        putNode(root, newNode)
    }

    // 후위 순회
    fun dfs(node: Node?) {
        if (node == null) {
            return
        }

        dfs(node.left)
        dfs(node.right)
        println(node.num)
    }
    dfs(root)

}

data class Node(val num: Int, var left: Node? = null, var right: Node? = null)