538. Convert BST to Greater Tree
2017-07-13 23:36
549 查看
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:
思路:先找出二叉树的节点总和,然后按照中序遍历从最左子节点开始赋值并递减原来总和
Example:
Input: The root of a Binary Search Tree like this: 5 / \ 2 13 Output: The root of a Greater Tree like this: 18 / \ 20 13
思路:先找出二叉树的节点总和,然后按照中序遍历从最左子节点开始赋值并递减原来总和
void sum_Tree(TreeNode* root,int &sum){ if (root == NULL)return; sum_Tree(root->left, sum); sum += root->val; sum_Tree(root->right, sum); } TreeNode* convertBST(TreeNode* root) { if (root == NULL)return NULL; int sum = 0; sum_Tree(root, sum); stack<TreeNode* > temp; TreeNode *p = root; while (!temp.empty() || p){ if (p){ temp.push(p); p = p->left; } else{ p = temp.top(); temp.pop(); int tmp = p->val; p->val = sum; sum -= tmp; p = p->right; } } return root; }
相关文章推荐
- 538. Convert BST to Greater Tree
- LeetCode-538 Convert BST to Greater Tree
- 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
- 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- 538. Convert BST to Greater Tree
- 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
- 538. Convert BST to Greater Tree
- [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(二叉树的右中左遍历)
- leetcode 538 Convert BST to Greater Tree C++