<Easy> Path Sum (LeetCode : C#)

이도희·2023년 5월 6일
0

알고리즘 문제 풀이

목록 보기
71/185

https://leetcode.com/problems/path-sum/

📕 문제 설명

root ~ leaf까지의 path 합 중 목표 합과 동일한 것이 있는지에 대한 여부 반환

  • Input
    이진 트리 root, 목표 합
  • Output
    목표 합 존재 여부 (bool)

예제

풀이

DFS로 path이면서 targetSum이랑 같을 때 true, 아닌 경우 false 반환

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left;
 *     public TreeNode right;
 *     public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
public class Solution {
    public int target;
    public bool HasPathSum(TreeNode root, int targetSum) {
        if (root == null) return false;
        target = targetSum;

        return CheckPathSum(root, 0);
    }

    public bool CheckPathSum(TreeNode currNode, int currSum)
    {
        if (currNode == null) return false; // left, right null 나올 수 있으므로 처리
        if (currNode.left == null && currNode.right == null && currSum + currNode.val == target) return true;
        return CheckPathSum(currNode.left, currSum + currNode.val) || CheckPathSum(currNode.right, currSum + currNode.val);
    }

}

결과

profile
하나씩 심어 나가는 개발 농장🥕 (블로그 이전중)

0개의 댓글