leetcode538/1038——Convert Bst to Greater Tree/Binary Search Tree to Greater Sum Tree

題目大意:把二叉搜索樹轉化成累加樹,使得每個節點的值是原來的節點值加上所有大於它的節點值之和

分析:題意轉化成=>從右往左中序遍歷,並且在遍歷過程中記錄前一個訪問節點的值

代碼:

/**
 * 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 {
    TreeNode* pre = NULL;
public:
    TreeNode* convertBST(TreeNode* root) {
        if(!root) return NULL;
        convertBST(root->right);
        if(pre) root->val += pre->val;
        pre = root;
        convertBST(root->left);
        return root;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章