Pair with given sum in BST Java
- Get link
- X
- Other Apps
PROGRAM TO FIND A PAIR WITH GIVEN SUM IN BST
import
java.util.*;
class
GFG {
static
class
Node {
int
data;
Node left, right;
};
static
Node NewNode(
int
data)
{
Node temp =
new
Node();
temp.data = data;
temp.left =
null
;
temp.right =
null
;
return
temp;
}
static
Node insert(Node root,
int
key)
{
if
(root ==
null
)
return
NewNode(key);
if
(key < root.data)
root.left = insert(root.left, key);
else
root.right = insert(root.right, key);
return
root;
}
static
boolean
findpairUtil(Node root,
int
sum,
HashSet<Integer> set)
{
if
(root ==
null
)
return
false
;
if
(findpairUtil(root.left, sum, set))
return
true
;
if
(set.contains(sum - root.data)) {
System.out.println(
"Pair is found ("
+ (sum - root.data) +
", "
+ root.data +
")"
);
return
true
;
}
else
set.add(root.data);
return
findpairUtil(root.right, sum, set);
}
static
void
findPair(Node root,
int
sum)
{
HashSet<Integer> set =
new
HashSet<Integer>();
if
(!findpairUtil(root, sum, set))
System.out.print(
"Pairs do not exit"
+
"\n"
);
}
// Driver code
public
static
void
main(String[] args)
{
Node root =
null
;
root = insert(root,
15
);
root = insert(root,
10
);
root = insert(root,
20
);
root = insert(root,
8
);
root = insert(root,
12
);
root = insert(root,
16
);
root = insert(root,
25
);
root = insert(root,
10
);
int
sum =
33
;
findPair(root, sum);
}
}
OUTPUT:
Pair is found (8, 25)
- Get link
- X
- Other Apps
Comments
Post a Comment