剑指 Offer II 054. 所有大于等于节点的值之和
Posted 易小顺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer II 054. 所有大于等于节点的值之和相关的知识,希望对你有一定的参考价值。
算法记录
LeetCode 题目:
给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。
说明
一、题目
给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。
二、分析
- 由于二叉搜索树自身的结构性质,先遍历右子树将会拿到整个树中的最大值。
- 在遍历的过程中进行一个和值的缓存,只要其右子树遍历完成就可以加上当前点的值然后进行根性当前点的值即可完成数据的更新。
/**
* 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 Integer max = 0;
public TreeNode convertBST(TreeNode root)
dfs(root);
return root;
public void dfs(TreeNode root)
if(root == null) return;
dfs(root.right);
max += root.val;
root.val = max;
dfs(root.left);
总结
熟悉二叉搜索树的性质和先右遍历。
以上是关于剑指 Offer II 054. 所有大于等于节点的值之和的主要内容,如果未能解决你的问题,请参考以下文章
算法剑指 Offer II 054. 所有大于等于节点的值之和|538|1038(多语言实现)
leetcode剑指 Offer II 008. 和大于等于 target 的最短子数组
leetcode剑指 Offer II 008. 和大于等于 target 的最短子数组