λ¬Έμ νμ
νΈλ¦¬ μμ μ‘΄μ¬νλ μμμ λ λ Έλμ μ°¨ μ€ μ΅μκ°μ λ°νν΄μΌνλ€.
νμ΄
1οΈβ£ μ€μ μνλ₯Ό μ΄μ©ν νμ΄
π‘ λ μ€λ₯Έ Idea
λ Έλ ꡬ쑰μμ μ€μ μνλ₯Ό νλ©΄μ λ Έλ κ°μ μΆλ ₯νλ©΄ μ€λ¦μ°¨μμΌλ‘ μ λ ¬λ λ°μ΄ν°λ₯Ό μ»μ μ μλ€λ νΉμ§μ μ΄μ©νμλ€.
첫λ²μ§Έ λ Έλλ μ΄μ λ Έλκ° μ‘΄μ¬νμ§ μμΌλ―λ‘, κ³μ°μ μλ΅νλ€. κ·Έλ¦¬κ³ μ΄μ λ Έλ κ°μ κΈ°λ‘ν΄μ€λ€.
λλ²μ§Έ λ Έλμ λλ¬νμ λ, μ΄μ λ Έλ κ°κ³Όμ μ°¨μ΄λ₯Ό ꡬνκ³ κ°±μ νλ€. κ°±μ ν, μ΄μ λ Έλ κ°μ λλ²μ§Έ κ°μ κΈ°λ‘ν΄μ€λ€.
....
μ κ³Όμ μ λ°λ³΅νλ λ°©μμ΄λ€.
class Solution {
int ans = Integer.MAX_VALUE;
Integer prev = null;
public int getMinimumDifference(TreeNode root) {
inOrder(root);
return ans;
}
public void inOrder(TreeNode node) {
if (node == null) {
return;
}
inOrder(node.left);
if (prev == null) {
prev = node.val;
} else {
ans = Math.min(ans, Math.abs(prev - node.val));
prev = node.val;
}
inOrder(node.right);
}
}
κ²°κ³Ό
π νκ³
κ·Έλμ TreeSet μ΄λ TreeMap κ°μ μ μλ μλ£κ΅¬μ‘°λ§ μ¬μ©νμλ€.
μ΄λ² λ¬Έμ λ, νΈλ¦¬μ μ리λ₯Ό μ νμ νκ³ μμ§ μμΌλ©΄ ν΄κ²°ν μ μλ λ¬Έμ μλ€.
μ΄λ² λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μ, νΈλ¦¬μ μ μμ μ리λ₯Ό λ€μ μ°Ύμλ³΄κ² λμκ³
λ°λΌμ μ’μ λ¬Έμ λΌκ³ μκ°νλ€.