리트코드 112. Path Sum

홍성진·2023년 2월 6일
0
post-thumbnail

리트코드 112. Path Sum

트리와 targetSum이 주어지고, root부터 leaf까지 다 더했을 때 targetSum이 나오는 경로가 있는지 묻는 문제입니다. 재귀함수를 이용하여 leaf까지 도달할 수 있도록 하고, targetSum까지 남은 값을 계산하여 데리고 다니는 방식으로 풀었습니다.

import java.util.*;

class Solution {
    public boolean hasPathSum(TreeNode root, int targetSum) {
        if (root == null) {
            return false;
        }
        
        return dfs(root, targetSum);
    }

    public boolean dfs(TreeNode node, int targetSum) {
        boolean left = false;
        boolean right = false;

        if (node.left == null && node.right == null) {
            if (node.val == targetSum) {
                return true;
            }
            return false;
        }

        if (node.left != null) {
            left = dfs(node.left, targetSum - node.val);
        }
        if (node.right != null) {
            right = dfs(node.right, targetSum - node.val);
        }

        return left || right;
    } 
}

0개의 댓글