Daily LeetCode Challenge - 129. Sum Root to Leaf Numbers

Min Young Kim·2023년 3월 14일
0

algorithm

목록 보기
93/198

Problem From.

https://leetcode.com/problems/sum-root-to-leaf-numbers/

오늘 문제는 tree 가 주어졌을때, root 부터 마지막 leaf 노드까지의 수를 String 형식으로 해서 숫자를 붙여나간뒤 마지막에 int 로 변환하여 더했을때, 그 합을 구하는 문제였다.

이 문제는 DFS 를 이용하여 풀 수 있었는데, 빈 list 를 하나 두고, 그 list 에 결과값들을 모두 모아둔 뒤 마지막에 더하는 식으로 풀 수 있었다.

/**
 * Example:
 * var ti = TreeNode(5)
 * var v = ti.`val`
 * Definition for a binary tree node.
 * class TreeNode(var `val`: Int) {
 *     var left: TreeNode? = null
 *     var right: TreeNode? = null
 * }
 */
class Solution {
    
    val list = mutableListOf<String>()
    
    fun sumNumbers(root: TreeNode?): Int {
        root ?: return 0
        var answer = 0
        DFS(root!!, root.`val`.toString())
        list.forEach {
            answer += it.toInt()
        }
        return answer
    }
    
    private fun DFS(node: TreeNode, num: String) {
        if(node.left == null && node.right == null) list.add(num)
        if(node.left != null) DFS(node.left, num + node.left.`val`.toString())
        if(node.right != null) DFS(node.right, num + node.right.`val`.toString())
    }
    
}
profile
길을 찾는 개발자

0개의 댓글