본문 바로가기

알고리즘/BFS

404. Sum of Left Leaves

본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.

문의는 댓글 바람.

팀 알고리즘 레포지토리 주소

문제 출처

 

Sum of Left Leaves - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

[문제 설명]

왼쪽 leaf에 같의 총합.

 

[자바코드]

class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        if (root.left == null && root.right == null) return 0;
        int answer = 0;
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);

        while (!queue.isEmpty()) {
            TreeNode temp = queue.poll();

            if (temp.left != null) {
                queue.offer(temp.left);
                if (temp.left.left == null && temp.left.right == null) answer += temp.left.val;
            }
            if (temp.right != null) queue.offer(temp.right);
        }

        return answer;
    }
}

[코틀린코드]

class Solution {
    fun sumOfLeftLeaves(root: TreeNode?): Int {
        if (root?.left == null && root?.right == null ) return 0
        var answer = 0
        val queue: Queue<TreeNode> = LinkedList<TreeNode>()
        queue.offer(root)

        while (!queue.isEmpty()) {
            val node = queue.poll()

            node.left?.also { left ->
                queue.offer(left)
                if (left.left == null && left.right == null) answer += left.`val`
            }
            node.right?.also { right -> queue.offer(right) }
        }

        return answer
    }
}
728x90
반응형

'알고리즘 > BFS' 카테고리의 다른 글

백준 - 나이트의 이동  (0) 2022.01.04
백준 - 촌수 계산  (0) 2022.01.02
463. Island Perimeter  (0) 2021.09.01
965. Univalued Binary Tree  (0) 2021.09.01
993. Cousins in Binary Tree  (0) 2021.08.27