Merge branch 'krahets:master' into master

This commit is contained in:
Daniel
2023-01-09 11:05:01 +11:00
committed by GitHub
93 changed files with 2147 additions and 1124 deletions
@@ -30,7 +30,7 @@ function hierOrder(root: TreeNode | null): number[] {
/* Driver Code */
/* 初始化二叉树 */
// 这里借助了一个从数组直接生成二叉树的函数
var root = arrToTree([1, 2, 3, 4, 5, 6, 7, null, null, null, null, null, null, null, null]);
var root = arrToTree([1, 2, 3, 4, 5, 6, 7]);
console.log('\n初始化二叉树\n');
printTree(root);
@@ -47,7 +47,7 @@ function postOrder(root: TreeNode | null): void {
/* Driver Code */
/* 初始化二叉树 */
// 这里借助了一个从数组直接生成二叉树的函数
const root = arrToTree([1, 2, 3, 4, 5, 6, 7, null, null, null, null, null, null, null, null]);
const root = arrToTree([1, 2, 3, 4, 5, 6, 7]);
console.log('\n初始化二叉树\n');
printTree(root);
+4 -4
View File
@@ -20,7 +20,7 @@ class TreeNode {
}
/**
* Generate a binary tree with an array
* Generate a binary tree given an array
* @param arr
* @return
*/
@@ -31,19 +31,19 @@ function arrToTree(arr: (number | null)[]): TreeNode | null {
const root = new TreeNode(arr[0] as number);
const queue = [root];
let i = 1;
let i = 0;
while (queue.length) {
let node = queue.shift() as TreeNode;
if (++i >= arr.length) break;
if (arr[i] !== null) {
node.left = new TreeNode(arr[i] as number);
queue.push(node.left);
}
i++;
if (++i >= arr.length) break;
if (arr[i] !== null) {
node.right = new TreeNode(arr[i] as number);
queue.push(node.right);
}
i++;
}
return root;
}