Input:
K =3Tree structure:7/\69//\1811Output:
14Explanation:
The Kth smallest element is the 3rd smallest, i.e.,`7`.The sum of values smaller than or equal to `7`in the BST is`1 + 6 + 7 = 14`.
classSolution {
privateint nodeCount = 0; // Counter to track number of visited nodesprivateint sum = 0; // Sum of all nodes visited// Function to find the sum of elements <= Kth smallest in BSTpublicintsumOfSmallerOrEqualToK(TreeNode root, int K) {
inOrderTraversal(root, K);
return sum;
}
// Helper function for in-order traversalprivatevoidinOrderTraversal(TreeNode root, int K) {
if (root ==null) {
return;
}
// Traverse left subtree inOrderTraversal(root.left, K);
// Process current node nodeCount++;
if (nodeCount <= K) {
sum += root.val;
} else {
return; // Stop traversal once Kth smallest is reached }
// Traverse right subtree inOrderTraversal(root.right, K);
}
}
classSolution:
def __init__(self):
self.node_count =0# Counter to track number of visited nodes self.sum =0# Sum of all nodes visiteddefsum_of_smaller_or_equal_to_k(self, root, K):
self.in_order_traversal(root, K)
return self.sum
# Helper function for in-order traversaldefin_order_traversal(self, root, K):
ifnot root:
return# Traverse left subtree self.in_order_traversal(root.left, K)
# Process current node self.node_count +=1if self.node_count <= K:
self.sum += root.val
else:
return# Stop traversal once Kth smallest is reached# Traverse right subtree self.in_order_traversal(root.right, K)