本文主要是介绍1038. 从二叉搜索树到更大和树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目来源:
leetcode题目,网址:1038. 从二叉搜索树到更大和树 - 力扣(LeetCode)
解题思路:
从最大节点开始求和并修改响应节点即可。
解题代码:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* bstToGst(TreeNode* root) {convert(root,0);return root;}int convert(TreeNode* root, int sum){if(root==nullptr){return sum;}sum=convert(root->right,sum);root->val=sum+root->val;sum=root->val;sum=convert(root->left,sum);return sum;}};
总结:
官方题解给出了两种解法。第一种是反序中序遍历,一样的解法。第二种是 Mirrors 遍历。
这篇关于1038. 从二叉搜索树到更大和树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!