美文网首页
leetcode538题解

leetcode538题解

作者: Stalary | 来源:发表于2017-11-28 00:49 被阅读0次

Convert BST to Greater Tree

题目描述:

将一颗二叉搜索树的每个比当前节点大的节点都与该节点求和,从而形成一颗更大的二叉树

题解:

由题意,我们可以得知是一颗二叉搜索树,而二叉搜索数又有什么特点呢?

1,左儿子一定小于根节点

2,右儿子一定大于根节点

所以我们可以推断出,最后一个右儿子节点一定是最大的,最后一个左儿子节点一定是最小的,所以我们可以从先对右儿子进行相加,然后依次与其他节点求和,下面展示一下code


int sum=0;

public staticTreeNodeconvertBST(TreeNode root) {

    convert(root);

    returnroot;

}

public voidconvert(TreeNode node) {

if(node ==null) {

    return;

}

convert(node.right);

node.val+=sum;

// 存储节点的值,供下次递归时使用

sum= node.val;

convert(node.left);

}


相关文章

网友评论

      本文标题:leetcode538题解

      本文链接:https://www.haomeiwen.com/subject/hnnjbxtx.html