반응형
https://leetcode.com/problems/convert-bst-to-greater-tree/
이진트리의 성질을 이용하면, 모든 노드를 한번 순회하면서 풀 수 있었습니다.
우측 노드, 현재 노드, 좌측 노드 순으로 방문하면서 값이 큰 노드를 우선하여 방문해줍니다.
방문 순서에 따라서 노드들의 합을 기억해주고, 해당 값으로 노드를 업데이트 해주면 됩니다.
class Solution {
public:
TreeNode* convertBST(TreeNode* root) {
int sum = 0;
convert(root, sum);
return root;
}
void convert(TreeNode* node, int& sum) {
if(!node) return;
convert(node->right, sum);
node->val = sum += node->val;
convert(node->left, sum);
}
};
반응형
'Algorithm' 카테고리의 다른 글
LeetCode 897 : Increasing Order Search Tree (0) | 2022.04.17 |
---|---|
LeetCode 448 : Find All Numbers Disappeared in an Array (0) | 2022.04.16 |
LeetCode 700 : Search in a Binary Search Tree (0) | 2022.04.14 |
LeetCode 59 : Spiral Matrix II (0) | 2022.04.13 |
LeetCode 289 : Game of Life (0) | 2022.04.12 |