• LeetCode 538. 把二叉搜索树转换为累加树 树的遍历


    地址 https://leetcode-cn.com/problems/convert-bst-to-greater-tree/

    给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),
    使得每个节点的值是原来的节点值加上所有大于它的节点值之和。
    
     
    
    例如:
    
    输入: 原始二叉搜索树:
                  5
                /   
               2     13
    
    输出: 转换为累加树:
                 18
                /   
              20     13

    算法1
    还是树的遍历 根据搜索二叉树的性质
    右节点值最大 根其次 左子树值最小
    所有先更新右节点 更新当前的总和
    再更新跟节点 再更新左节点

    C++ 代码

    /**
     * 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 sum =0;
        void dfs(TreeNode* root)
        {
            if(root==NULL) return;
            dfs(root->right);
            sum += root->val;   root->val = sum;
            dfs(root->left);
        }
    
        TreeNode* convertBST(TreeNode* root) {
            dfs(root);
            return root;
        }
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    HTML5 meta最全使用手册
    CSS3实现开门动画
    angularJS学习资源最全汇总
    酷炫放大镜canvas实现
    完成评论功能
    从首页问答标题到问答详情页
    首页列表显示全部问答,完成问答详情页布局
    制作首页的显示列表。
    发布功能完成。
    登录之后更新导航
  • 原文地址:https://www.cnblogs.com/itdef/p/13707328.html
Copyright © 2020-2023  润新知