1. BST 第 K 小的元素(中等)
地址: https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/
2021/12/01
class Solution {
public int kthSmallest(TreeNode root, int k) {
traverse(root, k);
return res;
}
int i = 0, res = 0;
void traverse(TreeNode root, int k) {
if (root == null) {
return;
}
traverse(root.left, k);
i++;
if (i == k) {
res = root.val;
return;
}
traverse(root.right, k);
}
}
2. 二叉搜索树转化累加树(中等)
地址: https://leetcode-cn.com/problems/binary-search-tree-to-greater-sum-tree/
2021/12/01
AC
class Solution {
public TreeNode bstToGst(TreeNode root) {
traverse(root);
return root;
}
int sum = 0;
void traverse(TreeNode root) {
if (root == null) {
return;
}
traverse(root.right);
sum += root.val;
root.val = sum;
traverse(root.left);
}
}
3. BST 转累加树 (中等)
地址: https://leetcode-cn.com/problems/convert-bst-to-greater-tree/
同上
2021/12/01
AC
class Solution {
public TreeNode bstToGst(TreeNode root) {
traverse(root);
return root;
}
int sum = 0;
void traverse(TreeNode root) {
if (root == null) {
return;
}
traverse(root.right);
sum += root.val;
root.val = sum;
traverse(root.left);
}
}
/**
class Solution {
public TreeNode bstToGst(TreeNode root) {
traverse(root);
return root;
}
int sum = 0;
void traverse(TreeNode root) {
if (root == null) {
return;
}
traverse(root.right);
sum += root.val;
root.val = sum;
traverse(root.left);
}
}
*/