建设社团网站的可行性分析,哈尔滨专业制作网站制作,wordpress字体目录下,商业网页设计LeetCode 538. 把二叉搜索树转换为累加树
题目
给出二叉 搜索 树的根节点#xff0c;该树的节点值各不相同#xff0c;请你将其转换为累加树#xff08;Greater Sum Tree#xff09;#xff0c;使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下…LeetCode 538. 把二叉搜索树转换为累加树
题目
给出二叉 搜索 树的根节点该树的节点值各不相同请你将其转换为累加树Greater Sum Tree使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下二叉搜索树满足下列约束条件 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。
思路
dfs 题目有点懵看了题解大概意思就是右中左做个求和那就比较容易了直接不断向右递归然后逐层向上求和就可以
代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {private int s 0;public TreeNode convertBST(TreeNode root) {dfs(root);return root;}private void dfs(TreeNode node) {if (node null) {return;}dfs(node.right);s node.val;node.val s;dfs(node.left);}
}