创建站点是什么意思,优秀设计师个人网站,公司如何做网站建设,南昌营销型网站建设题目 给定一个二叉搜索树 root (BST)#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下#xff0c; 二叉搜索树 满足下列约束条件#xff1a; 节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。…题目 给定一个二叉搜索树 root (BST)请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下 二叉搜索树 满足下列约束条件 节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。 解题思路
由题意可知需要先获取右子树的值累加再赋值给当前节点因此使用递归创建全局变量用来存储累加后的值右子树是先递归再赋值左子树需要先赋值再递归因为左子树的值小于当前节点。
代码展示
class Solution {private int sum 0;public TreeNode bstToGst(TreeNode root) {if(root null){return null;}bstToGst(root.right);sum root.val;//左子树节点的值小于根节点所以当存在左子树是需要先赋值再递归if(root.left ! null){root.val sum;bstToGst(root.left);} else {root.val sum;}return root;}
}