Coding Test/알고리즘 이론

균형잡힌 이진 트리 (Balanced Binary Tree) - leetcode (40)

hyunkookim 2025. 1. 11. 21:11

Easy:

  1. Balanced Binary Tree (LeetCode 110)
    설명: 주어진 이진 트리가 높이 균형 트리인지 확인합니다.
    핵심 개념: 재귀를 이용한 트리 깊이 계산.
  2. Maximum Depth of Binary Tree (LeetCode 104)
    설명: 이진 트리의 최대 깊이를 구합니다.
    핵심 개념: DFS를 이용한 깊이 계산.
  3. Minimum Depth of Binary Tree (LeetCode 111)
    설명: 이진 트리의 최소 깊이를 구합니다.
    핵심 개념: BFS를 이용한 최소 깊이 탐색.
  4. Symmetric Tree (LeetCode 101)
    설명: 이진 트리가 좌우 대칭인지 확인합니다.
    핵심 개념: 재귀를 통한 대칭 검사.
  5. Same Tree (LeetCode 100)
    설명: 두 트리가 동일한지 확인합니다.
    핵심 개념: DFS를 이용한 트리 비교.
  6. Invert Binary Tree (LeetCode 226)
    설명: 주어진 이진 트리를 좌우 반전합니다.
    핵심 개념: 재귀를 통한 트리 반전.
  7. Path Sum (LeetCode 112)
    설명: 루트에서 리프까지의 경로 합이 주어진 값을 가지는지 확인합니다.
    핵심 개념: DFS를 통한 경로 탐색.
  8. Binary Tree Paths (LeetCode 257)
    설명: 이진 트리에서 모든 루트-리프 경로를 찾습니다.
    핵심 개념: DFS를 통한 경로 생성.
  9. Lowest Common Ancestor of a Binary Search Tree (LeetCode 235)
    설명: BST에서 두 노드의 가장 가까운 공통 조상을 찾습니다.
    핵심 개념: 재귀와 분할 탐색.
  10. Binary Tree Tilt (LeetCode 563)
    설명: 트리의 각 노드에서 왼쪽과 오른쪽 서브트리의 합의 차이를 계산합니다.
    핵심 개념: DFS를 이용한 트리 순회.
  11. Range Sum of BST (LeetCode 938)
    설명: BST에서 주어진 범위에 속하는 노드 값의 합을 계산합니다.
    핵심 개념: DFS를 통한 범위 탐색.
  12. Diameter of Binary Tree (LeetCode 543)
    설명: 이진 트리에서 두 노드 간 가장 긴 경로를 찾습니다.
    핵심 개념: DFS를 통한 경로 길이 계산.
  13. Merge Two Binary Trees (LeetCode 617)
    설명: 두 이진 트리를 병합합니다.
    핵심 개념: 재귀를 통한 병합.
  14. Sum of Left Leaves (LeetCode 404)
    설명: 이진 트리의 왼쪽 리프 노드 값의 합을 계산합니다.
    핵심 개념: DFS를 통한 리프 노드 탐색.
  15. Find a Corresponding Node of a Binary Tree in a Clone of That Tree (LeetCode 1379)
    설명: 복제된 트리에서 원래 트리와 같은 값을 가진 노드를 찾습니다.
    핵심 개념: DFS를 통한 노드 매핑.
  16. Subtree of Another Tree (LeetCode 572)
    설명: 주어진 트리가 다른 트리의 서브트리인지 확인합니다.
    핵심 개념: 재귀를 통한 트리 비교.
  17. Find Bottom Left Tree Value (LeetCode 513)
    설명: 이진 트리에서 가장 왼쪽 리프 노드의 값을 찾습니다.
    핵심 개념: BFS를 통한 가장 왼쪽 값 탐색.
  18. Cousins in Binary Tree (LeetCode 993)
    설명: 두 노드가 같은 깊이에 있고 부모가 다른지 확인합니다.
    핵심 개념: BFS를 통한 관계 탐색.
  19. Univalued Binary Tree (LeetCode 965)
    설명: 트리의 모든 노드 값이 같은지 확인합니다.
    핵심 개념: DFS를 통한 값 비교.
  20. Binary Tree Level Order Traversal II (LeetCode 107)
    설명: 레벨 순서대로 트리의 노드를 탐색하지만 결과는 역순으로 반환합니다.
    핵심 개념: BFS와 결과 리스트 역전.

Medium:

  1. Validate Binary Search Tree (LeetCode 98)
    설명: 이진 탐색 트리가 유효한지 확인합니다.
    핵심 개념: 재귀를 통한 유효성 검사.
  2. Construct Binary Tree from Preorder and Inorder Traversal (LeetCode 105)
    설명: 전위 및 중위 순회 결과로 트리를 재구성합니다.
    핵심 개념: 재귀와 분할 정복.
  3. Populating Next Right Pointers in Each Node (LeetCode 116)
    설명: 트리의 각 노드에 오른쪽 포인터를 설정합니다.
    핵심 개념: BFS를 통한 노드 연결.
  4. Binary Tree Right Side View (LeetCode 199)
    설명: 트리의 오른쪽에서 보이는 노드들을 반환합니다.
    핵심 개념: BFS와 레벨 탐색.
  5. Flatten Binary Tree to Linked List (LeetCode 114)
    설명: 이진 트리를 연결 리스트 형태로 변환합니다.
    핵심 개념: DFS와 노드 연결.
  6. Path Sum II (LeetCode 113)
    설명: 루트에서 리프까지의 경로 중 합이 특정 값인 모든 경로를 반환합니다.
    핵심 개념: DFS와 백트래킹.
  7. Construct Binary Search Tree from Preorder Traversal (LeetCode 1008)
    설명: 전위 순회 결과로 BST를 생성합니다.
    핵심 개념: 재귀와 범위 제한.
  8. Kth Smallest Element in a BST (LeetCode 230)
    설명: BST에서 k번째로 작은 요소를 찾습니다.
    핵심 개념: 중위 순회와 카운트.
  9. Binary Tree Zigzag Level Order Traversal (LeetCode 103)
    설명: 레벨 순서를 지그재그로 탐색합니다.
    핵심 개념: BFS와 방향 전환.
  10. Lowest Common Ancestor of a Binary Tree (LeetCode 236)
    설명: 일반적인 이진 트리에서 두 노드의 가장 가까운 공통 조상을 찾습니다.
    핵심 개념: 재귀와 분할 탐색.
  11. Count Complete Tree Nodes (LeetCode 222)
    설명: 완전 이진 트리에서 노드의 개수를 셉니다.
    핵심 개념: 재귀와 이진 검색.
  12. Binary Tree Maximum Path Sum (LeetCode 124)
    설명: 이진 트리에서 최대 경로 합을 계산합니다.
    핵심 개념: DFS와 상태 저장.
  13. Vertical Order Traversal of a Binary Tree (LeetCode 987)
    설명: 트리를 수직 순서로 탐색합니다.
    핵심 개념: BFS와 정렬.
  14. Find Largest Value in Each Tree Row (LeetCode 515)
    설명: 트리의 각 행에서 가장 큰 값을 찾습니다.
    핵심 개념: BFS와 행별 최대값 탐색.
  15. Recover Binary Search Tree (LeetCode 99)
    설명: BST에서 잘못 배치된 두 노드를 수정합니다.
    핵심 개념: 중위 순회와 스왑.
  16. Serialize and Deserialize Binary Tree (LeetCode 297)
    설명: 트리를 직렬화하고 복원합니다.
    핵심 개념: BFS와 문자열 처리.
  17. Sum Root to Leaf Numbers (LeetCode 129)
    설명: 루트에서 리프까지의 경로로 구성된 숫자의 합을 구합니다.
    핵심 개념: DFS와 누적 값 계산.
  18. Construct Binary Tree from Inorder and Postorder Traversal (LeetCode 106)
    설명: 중위 및 후위 순회 결과로 트리를 재구성합니다.
    핵심 개념: 재귀와 분할 정복.
  19. All Nodes Distance K in Binary Tree (LeetCode 863)
    설명: 특정 노드에서 K 거리만큼 떨어진 노드를 찾습니다.
    핵심 개념: 그래프 변환과 BFS.
  20. Binary Tree Cameras (LeetCode 968)
    설명: 트리에 최소한의 카메라를 설치해 모든 노드를 모니터링합니다.
    핵심 개념: DFS와 상태 저장.