코테

[leetcode bfs] 199. Binary Tree Right Side View

박수연_01 2024. 1. 4. 00:19

https://leetcode.com/problems/binary-tree-right-side-view/?envType=study-plan-v2&envId=top-interview-150

 

Binary Tree Right Side View - LeetCode

Can you solve this real interview question? Binary Tree Right Side View - Given the root of a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.   Example 1: [https://asse

leetcode.com

 

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을 설정해서  해당 레벨의 값이 리스트에 없으면 해당 값을 넣도록 했다,