P18234 [GeeksforGeeks] Construct tree from preorder traversal
普及
题目描述

Construct a binary tree of size N using two given arrays pre[] and preLN[]. Array pre[] represents preorder traversal of a binary tree. Array preLN[] has only two possible values L and N. The value L in preLN[] indicates that the corresponding node in Binary Tree is a leaf node and value N indicates that the corresponding node is a non-leaf node.
Note: Every node in the binary tree has either 0 or 2 children.
Example 1:
Input :
N = 5
pre[] = {10, 30, 20, 5, 15}
preLN[] = {N, N, L, L, L}
Output:
10
/ \
30 15
/ \
20 5

Your Task:
You dont need to read input or print anything. Complete the function constructTree() which takes N, pre[] and preLN[] as input parameters and returns the root node of the constructed binary tree.
Note: The output generated by the compiler will contain the inorder traversal of the created binary tree.

Expected Time Complexity: O(N)
Expected Auxiliary Space: O(N)
Constraints:
1 ≤ N ≤ 10^{4}
1 ≤ pre[i] ≤ 10^{7}
preLN[i]: {'N', 'L'}

输入格式

见题面

输出格式

见题面

样例输入
N = 5\r\npre[] = {10, 30, 20, 5, 15}\r\npreLN[] = {N, N, L, L, L}
样例输出
10\n / \\n 30 15\n / \ \n 20 5