`{"id":"670d5aaa-e62e-4718-84dc-624150596daa","name":"Construct Binarytree From Preorder And Inorder Traversal","description":"1. You are given a partially written function to solve(Refer question video).\r\n2. Task : Construct Binary Tree from PreOrder and InOrder Traversal.\r\n3. you will be given two arrays representing a valid PreOrder & InOrder of a Binary Tree. Program is required to create a unique Binary Tree.","inputFormat":"Input is managed for you.","outputFormat":"Output is managed for you. ","constraints":"0 &lt;= Number of Nodes &lt;= 10^9\r\n-10^9 &lt;= value of Node data &lt;= 10^9\r\nValid InOrder & PreOrder traversals.","sampleCode":{"cpp":{"code":"#include <iostream>\r\n#include <vector>\r\nusing namespace std;\r\n\r\nclass TreeNode\r\n{\r\npublic:\r\n int val = 0;\r\n TreeNode *left = nullptr;\r\n TreeNode *right = nullptr;\r\n\r\n TreeNode(int val)\r\n {\r\n this->val = val;\r\n }\r\n};\r\n\r\nTreeNode *buildTree(vector<int> &preorder, vector<int> &inorder)\r\n{\r\n return nullptr;\r\n}\r\n\r\n// input_Section_====================================================================\r\n\r\nvoid display(TreeNode *node)\r\n{\r\n if (node == nullptr)\r\n return;\r\n\r\n string str = \"\";\r\n str += ((node->left != nullptr ? to_string(node->left->val) : \".\"));\r\n str += (\" -> \" + to_string(node->val) + \" <- \");\r\n str += ((node->right != nullptr ? to_string(node->right->val) : \".\"));\r\n\r\n cout << str << endl;\r\n\r\n display(node->left);\r\n display(node->right);\r\n}\r\n\r\nvoid solve()\r\n{\r\n int n;\r\n cin >> n;\r\n vector<int> pre(n, 0);\r\n for (int i = 0; i < n; i++)\r\n {\r\n cin >> pre[i];\r\n }\r\n\r\n vector<int> in(n, 0);\r\n for (int i = 0; i < n; i++)\r\n {\r\n cin >> in[i];\r\n }\r\n\r\n TreeNode *root = buildTree(pre, in);\r\n display(root);\r\n}\r\n\r\nint main()\r\n{\r\n solve();\r\n return 0;\r\n}"},"java":{"code":"import java.util.Scanner;\r\n\r\npublic class Main {\r\n public static Scanner scn = new Scanner(System.in);\r\n\r\n public static class TreeNode {\r\n int val = 0;\r\n TreeNode left = null;\r\n TreeNode right = null;\r\n\r\n TreeNode(int val) {\r\n this.val = val;\r\n }\r\n }\r\n\r\n public static TreeNode buildTree(int[] preorder, int[] inorder) {\r\n return null;\r\n }\r\n\r\n // input_section=================================================\r\n\r\n public static void display(TreeNode node) {\r\n if (node == null)\r\n return;\r\n\r\n StringBuilder sb = new StringBuilder();\r\n sb.append((node.left != null ? node.left.val : \".\"));\r\n sb.append(\" -> \" + node.val + \" <- \");\r\n sb.append((node.right != null ? node.right.val : \".\"));\r\n\r\n System.out.println(sb.toString());\r\n\r\n display(node.left);\r\n display(node.right);\r\n\r\n }\r\n\r\n public static void solve() {\r\n int n = scn.nextInt();\r\n int[] pre = new int[n];\r\n for (int i = 0; i < n; i++)\r\n pre[i] = scn.nextInt();\r\n\r\n int[] in = new int[n];\r\n for (int i = 0; i < n; i++)\r\n in[i] = scn.nextInt();\r\n\r\n TreeNode root = buildTree(pre, in);\r\n display(root);\r\n }\r\n\r\n public static void main(String[] args) {\r\n solve();\r\n }\r\n}"},"python":{"code":""}},"points":10,"difficulty":"easy","sampleInput":"7\r\n4 2 1 3 6 5 7\r\n1 2 3 4 5 6 7","sampleOutput":"2 -> 4 <- 6\r\n1 -> 2 <- 3\r\n. -> 1 <- .\r\n. -> 3 <- .\r\n5 -> 6 <- 7\r\n. -> 5 <- .\r\n. -> 7 <- .\r\n","questionVideo":"","hints":[],"associated":[],"solutionSeen":false,"tags":[],"meta":{"path":[{"id":0,"name":"home"},{"id":"0c54b191-7b99-4f2c-acb3-e7f2ec748b2a","name":"Data Structures and Algorithms","slug":"data-structures-and-algorithms","type":0},{"id":"2e9df04c-be14-441c-9a18-8b5a8ca6596d","name":"Trees For Intermediate","slug":"trees-for-intermediate-9994","type":0},{"id":"ba4d0032-76c5-470d-b3f6-adf4783c8b41","name":"Construct Binarytree From Preorder And Inorder Traversal","slug":"construct-binarytree-from-preorder-and-inorder-traversal","type":1}],"next":{"id":"cf78156a-9acb-43e6-99f5-7f366da03938","name":"Construct Binarytree From Preorder And Inorder Traversal","type":0,"slug":"construct-binarytree-from-preorder-and-inorder-traversal"},"prev":{"id":"900f94f3-fac0-413a-9818-62a952656f59","name":"Recover Bst","type":0,"slug":"recover-bst"}}}`

# Construct Binarytree From Preorder And Inorder Traversal

1. You are given a partially written function to solve(Refer question video). 2. Task : Construct Binary Tree from PreOrder and InOrder Traversal. 3. you will be given two arrays representing a valid PreOrder & InOrder of a Binary Tree. Program is required to create a unique Binary Tree.

`{"id":"670d5aaa-e62e-4718-84dc-624150596daa","name":"Construct Binarytree From Preorder And Inorder Traversal","description":"1. You are given a partially written function to solve(Refer question video).\r\n2. Task : Construct Binary Tree from PreOrder and InOrder Traversal.\r\n3. you will be given two arrays representing a valid PreOrder & InOrder of a Binary Tree. Program is required to create a unique Binary Tree.","inputFormat":"Input is managed for you.","outputFormat":"Output is managed for you. ","constraints":"0 &lt;= Number of Nodes &lt;= 10^9\r\n-10^9 &lt;= value of Node data &lt;= 10^9\r\nValid InOrder & PreOrder traversals.","sampleCode":{"cpp":{"code":"#include <iostream>\r\n#include <vector>\r\nusing namespace std;\r\n\r\nclass TreeNode\r\n{\r\npublic:\r\n int val = 0;\r\n TreeNode *left = nullptr;\r\n TreeNode *right = nullptr;\r\n\r\n TreeNode(int val)\r\n {\r\n this->val = val;\r\n }\r\n};\r\n\r\nTreeNode *buildTree(vector<int> &preorder, vector<int> &inorder)\r\n{\r\n return nullptr;\r\n}\r\n\r\n// input_Section_====================================================================\r\n\r\nvoid display(TreeNode *node)\r\n{\r\n if (node == nullptr)\r\n return;\r\n\r\n string str = \"\";\r\n str += ((node->left != nullptr ? to_string(node->left->val) : \".\"));\r\n str += (\" -> \" + to_string(node->val) + \" <- \");\r\n str += ((node->right != nullptr ? to_string(node->right->val) : \".\"));\r\n\r\n cout << str << endl;\r\n\r\n display(node->left);\r\n display(node->right);\r\n}\r\n\r\nvoid solve()\r\n{\r\n int n;\r\n cin >> n;\r\n vector<int> pre(n, 0);\r\n for (int i = 0; i < n; i++)\r\n {\r\n cin >> pre[i];\r\n }\r\n\r\n vector<int> in(n, 0);\r\n for (int i = 0; i < n; i++)\r\n {\r\n cin >> in[i];\r\n }\r\n\r\n TreeNode *root = buildTree(pre, in);\r\n display(root);\r\n}\r\n\r\nint main()\r\n{\r\n solve();\r\n return 0;\r\n}"},"java":{"code":"import java.util.Scanner;\r\n\r\npublic class Main {\r\n public static Scanner scn = new Scanner(System.in);\r\n\r\n public static class TreeNode {\r\n int val = 0;\r\n TreeNode left = null;\r\n TreeNode right = null;\r\n\r\n TreeNode(int val) {\r\n this.val = val;\r\n }\r\n }\r\n\r\n public static TreeNode buildTree(int[] preorder, int[] inorder) {\r\n return null;\r\n }\r\n\r\n // input_section=================================================\r\n\r\n public static void display(TreeNode node) {\r\n if (node == null)\r\n return;\r\n\r\n StringBuilder sb = new StringBuilder();\r\n sb.append((node.left != null ? node.left.val : \".\"));\r\n sb.append(\" -> \" + node.val + \" <- \");\r\n sb.append((node.right != null ? node.right.val : \".\"));\r\n\r\n System.out.println(sb.toString());\r\n\r\n display(node.left);\r\n display(node.right);\r\n\r\n }\r\n\r\n public static void solve() {\r\n int n = scn.nextInt();\r\n int[] pre = new int[n];\r\n for (int i = 0; i < n; i++)\r\n pre[i] = scn.nextInt();\r\n\r\n int[] in = new int[n];\r\n for (int i = 0; i < n; i++)\r\n in[i] = scn.nextInt();\r\n\r\n TreeNode root = buildTree(pre, in);\r\n display(root);\r\n }\r\n\r\n public static void main(String[] args) {\r\n solve();\r\n }\r\n}"},"python":{"code":""}},"points":10,"difficulty":"easy","sampleInput":"7\r\n4 2 1 3 6 5 7\r\n1 2 3 4 5 6 7","sampleOutput":"2 -> 4 <- 6\r\n1 -> 2 <- 3\r\n. -> 1 <- .\r\n. -> 3 <- .\r\n5 -> 6 <- 7\r\n. -> 5 <- .\r\n. -> 7 <- .\r\n","questionVideo":"","hints":[],"associated":[],"solutionSeen":false,"tags":[],"meta":{"path":[{"id":0,"name":"home"},{"id":"0c54b191-7b99-4f2c-acb3-e7f2ec748b2a","name":"Data Structures and Algorithms","slug":"data-structures-and-algorithms","type":0},{"id":"2e9df04c-be14-441c-9a18-8b5a8ca6596d","name":"Trees For Intermediate","slug":"trees-for-intermediate-9994","type":0},{"id":"ba4d0032-76c5-470d-b3f6-adf4783c8b41","name":"Construct Binarytree From Preorder And Inorder Traversal","slug":"construct-binarytree-from-preorder-and-inorder-traversal","type":1}],"next":{"id":"cf78156a-9acb-43e6-99f5-7f366da03938","name":"Construct Binarytree From Preorder And Inorder Traversal","type":0,"slug":"construct-binarytree-from-preorder-and-inorder-traversal"},"prev":{"id":"900f94f3-fac0-413a-9818-62a952656f59","name":"Recover Bst","type":0,"slug":"recover-bst"}}}`

Editor

# Construct Binarytree From Preorder And Inorder Traversal

easy

1. You are given a partially written function to solve(Refer question video). 2. Task : Construct Binary Tree from PreOrder and InOrder Traversal. 3. you will be given two arrays representing a valid PreOrder & InOrder of a Binary Tree. Program is required to create a unique Binary Tree.

## Constraints

0 <= Number of Nodes <= 10^9 -10^9 <= value of Node data <= 10^9 Valid InOrder & PreOrder traversals.

## Format

### Input

Input is managed for you.

### Output

Output is managed for you.

## Example

Sample Input

```.css-23h8hz{color:inherit;font-size:0.875rem;line-height:1.125rem;letter-spacing:0.016rem;font-weight:var(--chakra-fontWeights-normal);white-space:pre-wrap;}7 4 2 1 3 6 5 7 1 2 3 4 5 6 7```

### Sample Output

`.css-3oaykw{color:var(--chakra-colors-active-primary);font-size:0.875rem;line-height:1.125rem;letter-spacing:0.016rem;font-weight:var(--chakra-fontWeights-normal);white-space:pre-wrap;font-family:Monospace;}2 -> 4 `

Discussions

Show Discussion

Related Resources