import java.util.*;
class Solution {
public List<Integer> rightSideView(TreeNode root) {
List<Integer> rightside = new ArrayList<>();
dfs(root, 0, rightside);
return rightside;
}
public void dfs(TreeNode node, int level, List<Integer> rightside) {
if (node == null) {
return;
}
if (rightside.size() == level) {
rightside.add(node.val);
}
dfs(node.right, level + 1, rightside);
dfs(node.left, level + 1, rightside);
}
}
처음에는 level을 생각하지 못하고 if문으로 right랑 left랑 구분해서 right에 없으면 left 노드에서 찾도록 했는데 다른 사람들 코드를 참고해 보니 level을 설정해서 해당 레벨의 값이 리스트에 없으면 해당 값을 넣도록 했다,
'코테' 카테고리의 다른 글
48. Rotate Image (1) | 2024.02.06 |
---|---|
leetcode 215. Kth Largest Element in an Array (1) | 2024.01.05 |