Skip to content

Commit e4e1b49

Browse files
committedJan 26, 2025
Add solution #105
1 parent 0bdf46e commit e4e1b49

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed
 

‎README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
102|[Binary Tree Level Order Traversal](./0102-binary-tree-level-order-traversal.js)|Medium|
110110
103|[Binary Tree Zigzag Level Order Traversal](./0103-binary-tree-zigzag-level-order-traversal.js)|Medium|
111111
104|[Maximum Depth of Binary Tree](./0104-maximum-depth-of-binary-tree.js)|Easy|
112+
105|[Construct Binary Tree from Preorder and Inorder Traversal](./0105-construct-binary-tree-from-preorder-and-inorder-traversal.js)|Medium|
112113
108|[Convert Sorted Array to Binary Search Tree](./0108-convert-sorted-array-to-binary-search-tree.js)|Easy|
113114
110|[Balanced Binary Tree](./0110-balanced-binary-tree.js)|Easy|
114115
111|[Minimum Depth of Binary Tree](./0111-minimum-depth-of-binary-tree.js)|Easy|
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* 105. Construct Binary Tree from Preorder and Inorder Traversal
3+
* https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
4+
* Difficulty: Medium
5+
*
6+
* Given two integer arrays preorder and inorder where preorder is the preorder traversal of a
7+
* binary tree and inorder is the inorder traversal of the same tree, construct and return the
8+
* binary tree.
9+
*/
10+
11+
/**
12+
* Definition for a binary tree node.
13+
* function TreeNode(val, left, right) {
14+
* this.val = (val===undefined ? 0 : val)
15+
* this.left = (left===undefined ? null : left)
16+
* this.right = (right===undefined ? null : right)
17+
* }
18+
*/
19+
/**
20+
* @param {number[]} preorder
21+
* @param {number[]} inorder
22+
* @return {TreeNode}
23+
*/
24+
var buildTree = function(preorder, inorder) {
25+
if (!preorder.length || !inorder.length) return null;
26+
27+
const root = new TreeNode(preorder[0]);
28+
const mid = inorder.indexOf(preorder[0]);
29+
30+
root.left = buildTree(preorder.slice(1, mid + 1), inorder.slice(0, mid));
31+
root.right = buildTree(preorder.slice(mid + 1), inorder.slice(mid + 1));
32+
33+
return root;
34+
};

0 commit comments

Comments
 (0)