320x100
문제 : https://leetcode.com/problems/range-sum-of-bst/
BST는 왼쪽 자식 서브트리는 현재 노드보다 값이 작고, 오른쪽 자식 서브트리는 현재 노드보다 값이 크다.
따라서 현재 노드의 val가 L보다 크다면 왼쪽 서브트리에도 정답이 될 수 있는 노드가 있을 수도 있다. -> 왼쪽 서브트리 탐색.
현재 노드의 val가 R보다 작다면 오른쪽 서브트리에도 정답이 될 수 있는 노드가 있을 수 있다. -> 오른쪽 서브트리 탐색.
루트 노드부터 위 조건에 맞는 서브트리를 탐색해 가면서 정답이 될 수 있는 수를 더해간다.
시간복잡도는 O(노드개수).
소스코드 : https://gist.github.com/fpdjsns/8818a1684ee7bb59abfb404ff6dd792e
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode][946] Validate Stack Sequences (0) | 2018.11.25 |
---|---|
[leetcode][941] Valid Mountain Array (0) | 2018.11.25 |
[leetcode][746] Min Cost Climbing Stairs (0) | 2018.11.11 |
[leetcode][129] Sum Root to Leaf Numbers (0) | 2018.11.10 |
[Leetcode][934] Shortest Bridge (0) | 2018.11.10 |
댓글