본문 바로가기
알고리즘/LeetCode

[LeetCode] range sum of bst / DFS 풀이 JAVA

by 푸딩코딩 2024. 5. 31.
728x90
반응형

https://leetcode.com/problems/range-sum-of-bst/description/

 

 

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
import java.util.*;

class Solution {
    
    static int answer=0;

    public int rangeSumBST(TreeNode root, int low, int high) {
        answer=0;
        dfs( root, low, high);
        return answer;
    }
    static public void dfs(TreeNode now,  int low, int high){


        if(now.val>=low && now.val<=high ){ //조건만족시
            answer+=now.val; 
        }
        if(now.left!=null ) //왼쪽자식이 있다면
            dfs( now.left, low, high);
        if(now.right!=null) //오른쪽 자식이 잇다면
            dfs( now.right, low, high);


    }
}

 

 

재귀를 이용한 DFS로 풀었다.

LeetCode는 testCase를 별개로 돌리는 게 아니라 이어서 돌리는 듯 하다.

함수에서 변수 초기화를 해줘야한다.. 이것때문에 헤맴.. 

728x90
반응형