알고리즘

릿코드 938. Range Sum of BST 코틀린

rkrkrr0101 2024. 1. 8. 09:24

모든 노드 돌면서 값을 배열에 다 박고나서,그거 필터+sum돌리면될듯


정답

import java.util.LinkedList
import java.util.Queue

class Solution {
    fun rangeSumBST(root: TreeNode?, low: Int, high: Int): Int {
        val queue:Queue<TreeNode> =LinkedList()
        val numList = mutableListOf<Int>()
        queue.add(root)
        while (queue.isNotEmpty()){
            val tempNode=queue.poll()
            if (tempNode.right!=null) {
                queue.add(tempNode.right)
            }
            if (tempNode.left!=null) {
                queue.add(tempNode.left)
            }
            numList.add(tempNode.`val`)
        }

        println(numList.asSequence().filter { it>=low && it<=high }.sum())
        return numList.asSequence().filter { it>=low && it<=high }.sum()
    }
}
class TreeNode(var `val`: Int) {
    var left: TreeNode? = null
    var right: TreeNode? = null
}