Skip to content

Files

Latest commit

 

History

History
68 lines (53 loc) · 1.48 KB

538-convert-bst-to-greater-tree.md

File metadata and controls

68 lines (53 loc) · 1.48 KB

538. Convert BST to Greater Tree - 把二叉搜索树转换为累加树

给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。

例如:

输入: 二叉搜索树:
              5
            /   \
           2     13

输出: 转换为累加树:
             18
            /   \
          20     13

题目标签:Tree

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
cpp 24 ms N/A
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int tmp = 0;
    void dfs(TreeNode* node){
        if(!node){
            return;
        }
        if(node->right){
            dfs(node->right);
        }
        node->val += tmp;
        tmp = node->val;
        if(node->left){
            dfs(node->left);
        }
    }
    TreeNode* convertBST(TreeNode* root) {
        dfs(root);
        return root;
    }
};