λ¬Έμ νμ
μ£Όμ΄μ§λ νΈλ¦¬λ₯Ό, μ€λ₯Έμͺ½μμ λ°λΌλ³΄μμ λ 보μ΄λ λ Έλλ€μ λ°νν΄μΌνλ€.
λ¬Έμ ν΄μ μ, μ½κ° νΌλμ΄ μμ΄μ μ²μμλ νΈλ¦¬μ κ°μ₯ μ€λ₯Έμͺ½ λ Έλλ€μ μΆλ ₯ν΄μΌνλ μ€ μμλ€.
λ°λΌμ μμ κ°μ΄ ꡬμ±λ νΈλ¦¬μ κ²½μ°, root λ Έλμ right node λ μκΈ° λλ¬Έμ κ²°κ³Όκ° [1] μ΄ λμμΌ λλ€κ³ μκ°νλλ°
μꡬνλ λ΅μ [1,2] μλ€.
ν΄μμ μ°Ύμ보λ, μ΄ νΈλ¦¬λ₯Ό μ€λ₯Έμͺ½μμ λ°λΌλ΄€μ λ 보μ΄λ λ Έλλ€μ μΆλ ₯νλΌλ λ»μ΄μλ€.
νμ΄
1οΈβ£ μ μ νμμ μ΄μ©ν νμ΄
π‘ λ μ€λ₯Έ Idea
μ μ νμμ κ²½μ° μμ κ°μ΄ λ£¨νΈ λ Έλμμ μμνμ¬ μΌμͺ½ νΉμ μ€λ₯Έμͺ½ κ²½λ‘μ λμ λλ¬νλ©΄ λΆλͺ¨μ λ°λνΈ λ Έλλ‘ λμ΄κ°λ λ°©μμΌλ‘ νμνλ€.
μ λ¬Έμ μ κ²½μ°λ κ°μ₯ μ€λ₯Έμͺ½μ νμν΄μΌνλ―λ‘
κ²½λ‘λ₯Ό μ€λ₯Έμͺ½μΌλ‘ μμνλλ‘ μ μ νμμ ꡬννλ©΄ λκ² λ€κ³ νλ¨νμλ€.
그리κ³list
μ λ Έλλ₯Ό λ£λ μμ μ μ μ νμ λ©μλλ₯Ό νΈμΆν λ λ§λ€depth
νλΌλ―Έν°λ₯Ό μ΄μ©νμ¬depth
κ° μ¦κ°νμ§ μμΌλ©΄ μΆκ°νμ§ μλ λ°©μμΌλ‘ ꡬνν μ μμλ€.
import java.util.*;
class Solution {
List<Integer> list = new ArrayList<>();
int maxDepth = -1;
public List<Integer> rightSideView(TreeNode root) {
preOrder(root, 0);
return list;
}
private void preOrder(TreeNode node, int depth) {
if (node == null) {
return;
}
if (depth > maxDepth) {
list.add(node.val);
maxDepth = depth;
}
preOrder(node.right, depth + 1);
preOrder(node.left, depth + 1);
}
}
κ²°κ³Ό
π νκ³
μ΄μ λ¬Έμ λ μ€μ νμμ μ΄μ©νμ¬ κ΅¬ννμλλ°,
μ΄λ² λ¬Έμ μμλ μ μ νμμ μ΄μ©νμ¬ νμ΄νμλ€.
λ°λΌμ, μ΄ λ¬Έμ λ νμ νμμ ν΅ν΄μ 보μ΄λ λ Έλλ€μ μ°μ μ μΌλ‘ μΆκ°ν΄μ£Όκ³ ,
λ€λ₯Έ λ Έλμμ μΆκ°μ μΈ depth κ° μ‘΄μ¬ν κ²½μ° μΆκ°ν΄μ£Όλ λ°©μμΌλ‘ ꡬννλ©΄ λμλ€.