본문 바로가기

Leetcode

(106)
[Leetcode] 222. Count Complete Tree Nodes - JS https://leetcode.com/problems/count-complete-tree-nodes/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------이진트리의 root가 주어질 때, 트리 속 노드의 갯수를 반환하라.O(n) 시간복잡도 미만으로 풀어라.제한조건--------------------- 트리 속의 노드 갯수는 0 ~ 5*10^4이다.- 0  2. 접근 방법접근방법--------------------재귀함수로 left, right를 방문하여 node가 존재하면 외부 변수 count를 추가한다.  3. 코드/** * Definition for a binary tree node. * fu..
[Leetcode] 173. Binary Search Tree Iterator - JS https://leetcode.com/problems/binary-search-tree-iterator/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------이진 검색 트리의 중위순회 반복기를 나타내는 BSTIterator 클래스 구현하라.이진 검색 트리의 root는 제공된다.포인터는 이진 검색 트리의 모든 요소보다 작으면서 존재하지 않는 숫자로 초기화 되어야 한다.hasNext()는 포인터 오른쪽 순회하는 숫자가 있으면 true, 그렇지 않으면 falsenext()는 포인터 오른쪽으로 이동한 뒤 이동한 곳에 위치한 숫자를 반환한다.존재하지 않는 가장 작은 숫자에 대한 포인터를 초기화함으로써 ne..
[Leetcode] 124. Binary Tree Maximum Path Sum - JS https://leetcode.com/problems/binary-tree-maximum-path-sum/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------노드는 최대 1번만 나타날 수 있다.경로는 루트를 반드시 통과할 필요는 없다.경로의 합계는 노드 값의 합계이다.이진 트리의 루트가 주어질 때, 비어 있지 않은 경로의 최대 합계를 반환하라.제한조건--------------------- 노드의 갯수는 1 ~ 3*10^4개이다.- -1000  2. 접근 방법접근방법--------------------모든 경로 중 경로에 포함된 노드의 합이 최댓값을 반환해야한다.왼쪽 서브트리에서 최대 경로의 합,..
[Leetcode] 129. Sum Root to Leaf Numbers - JS https://leetcode.com/problems/sum-root-to-leaf-numbers/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------0-9까지 숫자를 포함하는 이진트리가 주어진다.각 루트에서 리프노드까지 경로는 숫자를 의미한다. 1 -> 2 -> 3은 123이다.모든 루트에서 리프노드까지의 숫자의 합을 반환하라.테스트케이스의 답은 32bit 정수이다.제한조건--------------------- 노드의 갯수는 1 ~ 1000개이다.- 0  2. 접근 방법접근방법--------------------재귀함수로 순회할 때, node와 누적합을 전달한다.자식 노드가 없을 때, 현재까지..
[Leetcode] 112. Path Sum - JS https://leetcode.com/problems/path-sum/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------이진 트리의 root, 정수 targetSum이 주어질 때, 루트에서 리프노드까지 모든 값을 더한 값과 targetSum이 같은 경우가 존재하면 true를 반환하라.제한조건--------------------- 노드의 갯수는 0 ~ 5000이다.- -1000  2. 접근 방법접근방법--------------------재귀적으로 노드들을 순회하면서 현재까지의 합계를 전달하여현재 노드의 left, right 둘다 자식 노드가 없을 때, 현재까지의 합계가 targetSum과 같은지..
[Leetcode] 114. Flatten Binary Tree to Linked List - JS https://leetcode.com/problems/flatten-binary-tree-to-linked-list/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------이진트리의 root가 주어질 때, 평탄화하라.right 포인터가 다음 노드를 가리킨다. left 자식은 항상 null이다.순서는 전위순회(부모 -> left -> right)와 동일해야한다.아무것도 반환하지말고 제자리에서 평탄화하라.제한조건--------------------- 노드의 갯수는 0 ~ 2000이다.- -100  2. 접근 방법접근방법--------------------1. 모든 노드 순회(current)2. 왼쪽 자..
[Leetcode] 117. Populating Next Right Pointers in Each Node II - JS https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------next 포인터를 채워서 다음 오른쪽 노드를 가리키도록 한다.다음 오른쪽 노드가 없으면 null제한조건--------------------- 이진트리의 노드의 갯수는 0 ~ 6000개이다.- -100  2. 접근 방법접근방법 - DFS--------------------root에서 시작하여 왼쪽 노드에서부터 오른쪽 노드까지 순회한다. (next로 이동)current: 현재 레벨의 시작 노드prev: 이전 노드..
[Leetcode] 106. Construct Binary Tree from Inorder and Postorder Traversal - JS https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------inorder, postorder 두 정수 배열이 주어진다.inorder는 중위순회, postorder는 후순위순회두 배열을 가지고 이진 트리를 반환하라.제한조건--------------------- 1  2. 접근 방법접근방법--------------------postorder란?left -> right -> 부모 순서로 순회한다.inorder란?left -> 부모 -> right 순서..