题目要求:给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
思路:对于二叉搜索树来说,其中序遍历是有序的,所以如果我们想实现累加树,反中序遍历即可,也就是右中左遍历,此时就是由大到小遍历,我们再使用两个指针即可实现。
leetcode实战:
代码实现:
递归法:
迭代法:
题目要求:给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
思路:对于二叉搜索树来说,其中序遍历是有序的,所以如果我们想实现累加树,反中序遍历即可,也就是右中左遍历,此时就是由大到小遍历,我们再使用两个指针即可实现。
leetcode实战:
代码实现:
递归法:
迭代法: