LintCode-Convert BST to Greater Tree
2017-05-18 17:52
519 查看
题目描述:
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}`:
Return the root of new tree
做题思路:
利用自身函数的递归调用,从右子树开始,用遍历右根左的方法,赋值给sum加和,更新sum,再把sum赋值给根节点,更新根节点的值,根节点与左子树上的节点,根据遍历和递归,依次改变值,并返回该树的根节点。
关键代码:
做题感想:这题想了好久,想出了好几种思路,但是会想不会写代码,所以上网搜了搜,这种算法便于看懂,更简洁。利用自身函数递归调用,来完成算法实现。
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
做题思路:
利用自身函数的递归调用,从右子树开始,用遍历右根左的方法,赋值给sum加和,更新sum,再把sum赋值给根节点,更新根节点的值,根节点与左子树上的节点,根据遍历和递归,依次改变值,并返回该树的根节点。
关键代码:
class Solution { public: /** * @param root the root of binary tree * @return the new root */ int sum=0; TreeNode* convertBST(TreeNode* root) { // Write your code here if(root==NULL) return NULL; convertBST(root->right); root->val+=sum; sum=root->val; convertBST(root->left); return root; } };
做题感想:这题想了好久,想出了好几种思路,但是会想不会写代码,所以上网搜了搜,这种算法便于看懂,更简洁。利用自身函数递归调用,来完成算法实现。
相关文章推荐
- LintCode Convert BST to Greater Tree
- LintCode Convert BST to Greater Tree
- LINTCODE——Convert BST to Greater Tree
- lintcode Convert BST to Greater Tree
- LintCode 661 Convert BST to Greater Tree
- Convert BST to Greater Tree
- LintCode: Convert Sorted Array to Binary Search Tree With Minimal Height
- Convert BST to Greater Tree
- LeetCode 538----Convert BST to Greater Tree
- Convert BST to Greater Tree
- lintcode:Convert Sorted List to Balanced BST
- Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- lintcode convert-sorted-array-to-binary-search-tree-with-minimal-height 把排序数组转换为高度最小的二叉搜索树
- 538. Convert BST to Greater Tree
- LeetCode: Convert BST to Greater Tree
- 661.Convert BST to Greater Tree
- 661 - Convert BST to Greater Tree
- Convert BST to Greater Tree
- Convert BST to Greater Tree