538. 把二叉搜索樹轉換爲累加樹

給定一個二叉搜索樹(Binary Search Tree),把它轉換成爲累加樹(Greater Tree),使得每個節點的值是原來的節點值加上所有大於它的節點值之和。

例如:

輸入: 二叉搜索樹:
              5
            /   \
           2     13

輸出: 轉換爲累加樹:
             18
            /   \
          20     13

中序遍歷倒過來搞起!

class Solution {
    int pre = 0;
    public void dfs(TreeNode root){
        if(root != null){
            dfs(root.right);
            root.val = pre + root.val;
            pre = root.val;
            dfs(root.left);
        }            
    }
    public TreeNode convertBST(TreeNode root) {
        dfs(root);
        return root;
    }
}
發佈了199 篇原創文章 · 獲贊 27 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章