Skip to content

Commit d50091b

Browse files
authored
Create 894-all-possible-full-binary-trees.js
1 parent 0fc29b1 commit d50091b

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

894-all-possible-full-binary-trees.js

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* function TreeNode(val) {
4+
* this.val = val;
5+
* this.left = this.right = null;
6+
* }
7+
*/
8+
/**
9+
* @param {number} N
10+
* @return {TreeNode[]}
11+
*/
12+
const allPossibleFBT = function(N) {
13+
if (N <= 0) {
14+
return []
15+
}
16+
const dp = new Array(N + 1)
17+
for (let i = 0; i <= N; i++) {
18+
dp[i] = []
19+
}
20+
dp[1].push(new TreeNode(0))
21+
22+
for (let numNode = 1; numNode <= N; numNode += 2) {
23+
for (let leftNode = 1; leftNode < numNode; leftNode += 2) {
24+
for (let left of dp[leftNode]) {
25+
for (let right of dp[numNode - 1 - leftNode]) {
26+
let root = new TreeNode(0)
27+
root.left = left
28+
root.right = right
29+
dp[numNode].push(root)
30+
}
31+
}
32+
}
33+
}
34+
return dp[N]
35+
};

0 commit comments

Comments
 (0)