本文主要是介绍二叉树遍历 LeetCode 1038. 从二叉搜索树到更大和树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1038. 从二叉搜索树到更大和树
给定一个二叉搜索树 root
(BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。
从图中可以看出,每个节点是BST右中左遍历时,遍历到的节点的值加上之前所有节点的值。
在遍历时可以使用一个全局变量,表示之前所有节点的值,并维护这个变量。
class Solution {
public:int cur;void dfs(TreeNode *root){if(root==NULL)return;if(root->right)dfs(root->right);root->val=root->val+cur;cur=root->val;if(root->left)dfs(root->left);}TreeNode* bstToGst(TreeNode* root) {cur=0;dfs(root);return root;}
};
这篇关于二叉树遍历 LeetCode 1038. 从二叉搜索树到更大和树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!