Leetcode_#538_把二叉搜索树转换为累加树

原题:#538_把二叉搜索树转换为累加树

  • 关键:
    • 二叉搜索树的中序遍历是有序的
    • 最大的数更新后还是它本身
    • 按照节点值降序遍历所有节点,同时记录我们已经遍历过的节点值的和,并把这个和加到当前节点的值中
    • 遍历一个没有遍历过的节点之前,先将大于点值的点都遍历一遍
private int sum;
public TreeNode convertBST(TreeNode root) {
    midOrder(root);
    return root;
}
public void midOrder(TreeNode root) {
    if (root == null) return;
    midOrder(root.right);	//先遍历右子树(右子树的值最大)
    sum += root.val;
    root.val = sum;
    midOrder(root.left);
}
原创文章 50 获赞 1 访问量 2916

猜你喜欢

转载自blog.csdn.net/u014642412/article/details/105952252