import
java.util.*;
import
java.io.*;
class
GFG {
public
static
class
Node {
int
data;
Node left;
Node right;
Node(
int
data, Node left, Node right)
{
this
.data = data;
this
.left = left;
this
.right = right;
}
}
public
static
void
display(Node node, List<Integer> al)
{
if
(node ==
null
) {
return
;
}
if
(node.left !=
null
) {
al.add(node.left.data);
}
else
{
al.add(
null
);
}
if
(node.right !=
null
) {
al.add(node.right.data);
}
else
{
al.add(
null
);
}
display(node.left, al);
display(node.right, al);
}
public
static
void
main(String[] args)
{
int
n =
7
;
List<Node> list = allPossibleFBT(n);
for
(Node root: list) {
List<Integer> al =
new
ArrayList<>();
al.add(root.data);
display(root, al);
System.out.println(al);
}
}
static
HashMap<Integer, List<Node> > hm =
new
HashMap<>();
public
static
List<Node> allPossibleFBT(
int
n)
{
if
(!hm.containsKey(n)) {
List<Node> list =
new
LinkedList<>();
if
(n ==
1
) {
list.add(
new
Node(
0
,
null
,
null
));
}
else
if
(n %
2
==
1
) {
for
(
int
x =
0
; x < n; x++) {
int
y = n -
1
- x;
for
(Node left: allPossibleFBT(x)) {
for
(Node right: allPossibleFBT(y)) {
Node node =
new
Node(
0
,
null
,
null
);
node.left = left;
node.right = right;
list.add(node);
}
}
}
}
hm.put(n, list);
}
return
hm.get(n);
}
}
Original page link
Best Cool Tech Gadgets
Top favorite technology gadgets
0 comments:
Post a Comment