从二叉搜索树到更大和树
二叉搜索树:1节点的左子树仅包含键小于节点键的节点。
2节点的右子树仅包含键大于节点键的节点。
3左右子树也必须是二叉搜索树。
**要求:**修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
思路:逆置中序遍历
执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :34.3 MB, 在所有 Java 提交中击败了100.00%的用户
/*API*/
public TreeNode bstToGst(TreeNode root) {
LargerAnd(root);
return root;
}
private int sum=0;
//更大和方法
private void LargerAnd(TreeNode root) {
if(root==null){
return;
}
LargerAnd(root.right);//访问大于root的节点
root .val +=sum;//赋值给当前节点
sum=root.val;//保存更大和
LargerAnd(root.left);//
}