Convert BST to Greater Tree
来源:互联网 发布:创世纪 知乎 编辑:程序博客网 时间:2024/06/18 15:30
题目:
Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.
Given a binary search Tree `{5,2,3}`:
5 / \ 2 13
Return the root of new tree
18 / \ 20 13
代码:
/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param root the root of binary tree
* @return the new root
*/
TreeNode* convertBST(TreeNode* root) {
// Write your code here
/*if(root==NULL) return NULL;
if(root->right!=NULL)
{ root->val=root->val+sum(root->right);
convertBST(root->right);
}
if(root->left!=NULL)
{ root->left->val=root->val+root->left->val;
convertBST(root->left);
}
return root;
}
int sum(TreeNode* root){
int k=root->val;
if(root->left!=NULL) k=k+sum(root->left);
if(root->right!=NULL) k=k+sum(root->right);
return k;
}*/
int sum = 0;
helper(root, sum);
return root;
}
void helper(TreeNode*& node, int& sum) {
if (!node) return;
helper(node->right, sum);
node->val += sum;
sum = node->val;
helper(node->left, sum);
}
};
感想:我老感觉这道题有问题,因为我第一次提交后,它给出一个例子{1,2,3,4,5,6,7},计算和它的不一样,可是这又明明不是二叉查找树,就算我把它转换成二叉查找树手算后也不对,但换成后来这种算法后就过了,有点莫名其妙。
- 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
- 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
- 两数组的交
- 【异常】nested exception is java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource
- PoEdu-Windows班-001操作系统
- xml入门(二)----DTD
- openfalcon插件 监控http时候的编码问题
- Convert BST to Greater Tree
- DevCpp5.11 Socket编程时可能遇到的问题
- 逻辑回归,non-numeric argument to binary operator
- Ubuntu(Linux)下Python升级及pip的处理
- Python安装zlib模块
- windows系统禁止屏幕旋转快捷键
- bzoj 1061: [Noi2008]志愿者招募 单纯形
- JS
- 关于‘Starting Tomcat v7.0 Server at localhost’ has encountered a problem问题