aboutsummaryrefslogtreecommitdiff
path: root/bst_to_greater_tree.cpp
blob: 293ed812f30d30b91be100eeabac5aeef0db52f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "leetcode.h"

class Solution {
public:
  int currSum;
  TreeNode *convertBST(TreeNode *root) {
    if (!root)
      return root;
    currSum = 0;
    traverse(root);
    return root;
  }

private:
  void traverse(TreeNode *node) {
    if (node->right)
      traverse(node->right);
    currSum += node->val;
    node->val = currSum;
    if (node->left)
      traverse(node->left);
  }
};

int main() {}