系列文章
【英雄哥七月集训】第 01天:数组
【英雄哥七月集训】第 02天:字符串
【英雄哥七月集训】第 03天:排序
【英雄哥七月集训】第 04天:贪心
【英雄哥七月集训】第 05天:双指针
【英雄哥七月集训】第 06天:滑动窗口
【英雄哥七月集训】第 07天:哈希表
【英雄哥七月集训】第 08天:前缀和
【英雄哥七月集训】第 09天:二分查找
【英雄哥七月集训】第 10天:位运算
【英雄哥七月集训】第 11天:矩阵
【英雄哥七月集训】第 12天:链表
【英雄哥七月集训】第 13天:双向链表
【英雄哥七月集训】第 14天:栈
【英雄哥七月集训】第 15天:深度优先搜索
【英雄哥七月集训】第 16天:队列
【英雄哥七月集训】第 17天:广度优先搜索
【英雄哥七月集训】第 18天:树
【英雄哥七月集训】第 19天:二叉树
【英雄哥七月集训】第 20天:搜索二叉树
一、938. 二叉搜索树的范围和
938. 二叉搜索树的范围和
leetcode938 java
class Solution {
public int rangeSumBST(TreeNode root, int low, int high) {
if(root==null){
return 0;
}
int sum=0;
if(root.val<=high && root.val>=low){
sum+=root.val;
}
return sum+rangeSumBST(root.left,low,high)+rangeSumBST(root.right,low,high) ;
}
}
二、剑指 Offer II 054. 所有大于等于节点的值之和
剑指 Offer II 054. 所有大于等于节点的值之和
leetcode剑指 Offer II 054 java
class Solution {
public TreeNode convertBST(TreeNode root) {
int sum = 0;
TreeNode node = root;
while (node != null) {
if (node.right == null) {
sum += node.val;
node.val = sum;
node = node.left;
} else {
TreeNode succ = getSuccessor(node);
if (succ.left == null) {
succ.left = node;
node = node.right;
} else {
succ.left = null;
sum += node.val;
node.val = sum;
node = node.left;
}
}
}
return root;
}
public TreeNode getSuccessor(TreeNode node) {
TreeNode succ = node.right;
while (succ.left != null && succ.left != node) {
succ = succ.left;
}
return succ;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
总结