[538 Convert BST to Greater Tree]搜索二叉树的数值计算
来源:互联网 发布:淘宝宝贝如何上下架 编辑:程序博客网 时间:2024/06/05 18:35
一、题目解析
给定一个搜索二叉树,然后将该搜索树的每一个节点Node[i]进行转换,其中具体转换规则为每一个节点的新值等于该二叉搜索树中所有比他大的节点值与其本身值的和,依次将该二叉树的每一个节点值按照以上规则进行重新计算,输出新二叉树的根节点,详情举例如下:
Input: The root of a Binary Search Tree like this: 5 / \ 2 13Output: The root of a Greater Tree like this: 18 / \ 20 13二、思路解析
搜索二叉树有着非常明显的特点,即右节点值大于根节点值大于左节点值,由于每个节点的新值为所有大于节点值与其本身的节点值和,因此遍历顺序依次为右节点、根节点、左节点。计算过程在根节点处进行,设置一个变量temp,该变量存储当前节点之前所有遍历节点的和,具体算法实现如下。
三、代码实现
/** * 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: TreeNode* convertBST(TreeNode* root) { travel(root); return root; } TreeNode* travel(TreeNode* root) { if(!root) { return 0; } if(root->right) { travel(root->right); } temp += root->val; root->val = temp; if(root->left) { travel(root->left); } return root; }private: int temp = 0;};
阅读全文
0 0
- [538 Convert BST to Greater Tree]搜索二叉树的数值计算
- 538. Convert BST to Greater Tree 二叉搜索树转化为更大的树
- 538. Convert BST to Greater Tree (将二叉搜索树BST转为较大树)
- LeetCode 538 Convert BST to Greater Tree(二叉树的右中左遍历)
- Leetcode 538:Convert BST to Greater Tree
- LeetCode-538 Convert BST to Greater Tree
- leetcode(538). Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree
- uva11076求全排列的和
- Java事务处理全解析(七)—— 像Spring一样使用Transactional注解(Annotation)
- String的常用方法
- 根据配货员筛选订单
- TCP: SYN ACK FIN RST PSH URG 详解
- [538 Convert BST to Greater Tree]搜索二叉树的数值计算
- varchar2转换clob问题
- applicationContext.xml文件中怎么配置struts2和spring配置文件的加载路径
- jquery 实现抖动效果
- Filter案例(字符过滤器)
- SpringMVC拦截器(资源和权限管理)
- 关于几个统计用的C++方法
- 两张表弄懂Jsp中的四个作用域域和九个内置对象
- Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)