Today I Learned

최지웅·2024년 4월 11일
0

Today I Learned

목록 보기
139/238

오늘 할일
1. 창엔 2일차
2. LeetCode
3. 강의

오늘 한일
1. LeetCode

    1. Maximum Level Sum of a Binary Tree는 같은 깊이 노드 들의 합이 가장 큰 깊이를 구하는 문제이다. 최대 깊이 크기만큼의 배열을 선언하고, DFS를 이용해 깊이를 구하며 값을 해당 배열에 더하여 해결하였다.
class Solution {
    private int[] accumulator=new int[10000];

    private int DFS(TreeNode node, int depth){
        if(node==null)
            return 0;
        accumulator[depth]+=node.val;
        return 1+ Math.max(DFS(node.left, depth+1), DFS(node.right, depth+1));
    }

    public int maxLevelSum(TreeNode root) {
        if(root==null)
            return 0;
        int depth=DFS(root, 0);
        int max_index=0;
        for(int i=1; i<depth; i++)
            if(accumulator[max_index]<accumulator[i])
                max_index=i;
        
        return max_index+1;
    }
}

    1. Search in a Binary Search Tree는 이진탐색트리에서 노드를 검색하는 것이다.
class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        while(true){
            if(root==null)
                return null;
            else if(root.val==val)
                return root;
            else if(root.val<val)
                root=root.right;
            else if(root.val>val)
                root=root.left;
        }
    }
}
profile
이제 3학년..

0개의 댓글