์ฝ๋
class Solution {
public int rangeSumBST(TreeNode root, int low, int high) {
// ํ์ ๋
ธ๋ ์์ผ๋ฉด ์ข
๋ฃ
if (root == null) {
return 0;
}
// ํ์ฌ ๋
ธ๋์ ๊ฐ์ด high๋ณด๋ค ํฌ๋ค๋ฉด, ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ํ์ํ ํ์ ์์
if (root.val > high) {
return rangeSumBST(root.left, low, high);
}
// ํ์ฌ ๋
ธ๋์ ๊ฐ์ด low๋ณด๋ค ์๋ค๋ฉด, ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ํ์ํ ํ์ ์์
if (root.val < low) {
return rangeSumBST(root.right, low, high);
}
// ํ์ฌ ๋
ธ๋์ ๊ฐ์ด [low, high] ๋ฒ์์ ์๋ ๊ฒฝ์ฐ:
// ํ์ฌ ๋
ธ๋์ ๊ฐ์ ๋ํ๊ณ , ์ผ์ชฝ ๋ฐ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ๋ชจ๋ ํ์
return root.val + rangeSumBST(root.left, low, high) + rangeSumBST(root.right, low, high);
}
}
Java
๋ณต์ฌ
๋ฌธ์ ํด๊ฒฐ ์์ด๋์ด
์ฌ๊ท๋ฅผ ํ์ฉํ DFS ๊ตฌ์กฐ๋ก ์กฐ๊ฑด์ ๋ง๋ ๋
ธ๋๋ฅผ ํ์ํ๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ๋ค.