99클럽 코테 스터디 18일차 TIL + 오늘의 학습 키워드

ㅎㅇ·2024년 8월 8일
0

항해99 TIL

목록 보기
13/33

문제
897. 증가하는 주문 검색 트리


코드
class Solution {
Queue nodes = new LinkedList<>();

public TreeNode increasingBST(TreeNode root) {
    if(root == null) return root;
    recur(root);
    
    TreeNode answer = new TreeNode(0, null, null);
    TreeNode temp = answer;
    
    while(!nodes.isEmpty()) {
        temp.right = new TreeNode(nodes.poll(), null, null);
        temp = temp.right;
    }
    
    return answer.right;
}

public void recur(TreeNode root){
    if(root == null) return;        
    recur(root.left);
    nodes.add(root.val);
    recur(root.right);

}

}
*코드리뷰

장점

  1. 기본 기능 충실:
  • 중위 순회(Inorder Traversal)를 사용해 트리 노드를 오름차순 으로 정렬하는 방법을 잘 구현했습니다.
  • 코드가 직관적이고 이해하기 쉬워, 트리 순회와 새로운 트리 생성 을 명확히 구분하고 있습니다.

2.재귀 함수의 적절한 사용:

  • recur 메서드를 통해 중위 순회를 구현하고, 이진 트리의 특성을 잘 활용했습니다.

개선점

  1. 큐 사용의 불필요성:

*Queue nodes를 사용하여 노드 값을 일단 저장하고, 이 를 다시 순회하면서 새로운 트리를 만드는 방법은 메모리와 시간이 중복으로 사용됩니다.

  • 중위 순회하면서 새로운 트리를 바로 구성하면 큐가 불필요해집니다.
profile
안녕하세요

0개의 댓글