538. Convert BST to Greater Tree
来源:互联网 发布:python str.format 编辑:程序博客网 时间:2024/06/07 20:02
题目:
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.
Example:
Input: The root of a Binary Search Tree like this: 5 / \ 2 13Output: The root of a Greater Tree like this: 18 / \ 20 13思路:
对于树结构的题目,本题使用递归的方法,步骤如下:
step1:中序遍历,存储得升序的数组
step2;中序遍历,赋值
代码:
/** * 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) { vector<int> res; InOrder(root,res); for(int i =0;i<res.size();i++) { for(int j=i+1;j<res.size();j++) { res[i] +=res[j]; } } #sort(res.begin(),res.end()); int i= 0; InOrder_change(root,res,i); return root; }private: void InOrder(TreeNode* T,vector<int>& res){ if(T != NULL){ //访问左子结点 InOrder(T->left,res); //访问根节点 res.push_back(T->val); //访问右子结点 InOrder(T->right,res); } } void InOrder_change(TreeNode* T, vector<int>& res,int& i){ if(T != NULL){ //访问左子结点 InOrder_change(T->left,res,i); //访问根节点 T->val = res[i]; i++; //访问右子结点 InOrder_change(T->right,res,i); } } };
阅读全文
0 0
- 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
- Leetcode 538. Convert BST to Greater Tree
- leetcode 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- leetcode 538. Convert BST to Greater Tree
- leetcode 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- [leetcode]538. Convert BST to Greater Tree
- LeetCode 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- leetcode 538. Convert BST to Greater Tree
- [LeetCode] 538. Convert BST to Greater Tree
- (系统)基于封装/抽象/多态的简单的汽车租赁系统
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- 遍历Map方法集合
- Dropout浅层理解与实现
- MySQL基础-DML语句
- 538. Convert BST to Greater Tree
- Mac系统下安装和卸载HomeBrew的方法
- phpMyAdmin 最新版快速使用文档V4.7.3 (2017年8月9日)
- svn 提交 has encountered a problem
- 学习笔记---css中伪元素与伪类(迷惑我的:after与:hover)
- svn回到历史的某个版本
- AJAX
- 侧滑+传值
- 2017-8-24 java课堂笔记方法重载