8000 advance tree questions · Ismail0290/DSA-Bootcamp-Java@da82520 · GitHub
[go: up one dir, main page]

Skip to content

Commit da82520

Browse files
advance tree questions
1 parent c2d7709 commit da82520

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class KthSmallest {
2+
public int kthSmallest(TreeNode root, int k) {
3+
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
4+
helper(root, minHeap, k);
5+
6+
// remove k elements
7+
int ans = 0;
8+
for(int i=0; i<k; i++) {
9+
ans = minHeap.poll();
10+
}
11+
return ans;
12+
}
13+
14+
private void helper(TreeNode node, PriorityQueue<Integer> minHeap, int k) {
15+
if (node == null) {
16+
return;
17+
}
18+
19+
helper(node.left, minHeap, k);
20+
21+
minHeap.offer(node.val);
22+
23+
helper(node.right, minHeap, k);
24+
}
25+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class KthSmallest {
2+
private int k;
3+
private int ans;
4+
5+
public int kthSmallest(TreeNode root, int k) {
6+
this.k = k;
7+
helper(root);
8+
return ans;
9+
}
10+
11+
private void helper(TreeNode node) {
12+
if (node == null) {
13+
return;
14+
}
15+
16+
helper(node.left);
17+
18+
k--;
19+
if(k==0) {
20+
ans = node.val;
21+
return;
22+
}
23+
24+
helper(node.right);
25+
}
26+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class TwoSum {
2+
public boolean findTarget(TreeNode root, int k) {
3+
HashSet<Integer> set = new HashSet<>();
4+
return helper(root, k, set);
5+
}
6+
private boolean helper(TreeNode node, int k, HashSet<Integer> set) {
7+
if(node == null) {
8+
return false;
9+
}
10+
if(set.contains(k - node.val)) {
11+
return true;
12+
}
13+
14+
set.add(node.val);
15+
return helper(node.left, k, set) || helper(node.right, k , set);
16+
}
17+
}

0 commit comments

Comments
 (0)
0