LeetCode-105-Construct Binary Tree from Preorder and Inorder Traversal
Posted 无名路人甲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-105-Construct Binary Tree from Preorder and Inorder Traversal相关的知识,希望对你有一定的参考价值。
算法描述:
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
For example, given
preorder = [3,9,20,15,7] inorder = [9,3,15,20,7]
Return the following binary tree:
3 / 9 20 / 15 7
解题思路:理解原理。
TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { return helper(preorder, 0, preorder.size()-1, inorder, 0, inorder.size()-1); } TreeNode* helper(vector<int>& preorder, int ps, int pe, vector<int>& inorder, int is, int ie){ if(ps > pe || is > ie) return nullptr; TreeNode* node = new TreeNode(preorder[ps]); int pos = 0; for(int i=is; i <= ie; i++){ if(inorder[i]==preorder[ps]){ pos = i; break; } } node->left = helper(preorder, ps+1, pe, inorder, is, pos-1); node->right = helper(preorder,ps+pos-is+1, pe, inorder, pos+1, ie); return node; }
以上是关于LeetCode-105-Construct Binary Tree from Preorder and Inorder Traversal的主要内容,如果未能解决你的问题,请参考以下文章
一天一道LeetCode#105. Construct Binary Tree from Preorder and Inorder Traversal
leetcode 105 Construct Binary Tree from Preorder and Inorder Traversal ----- java
leetcode105:Construct Binary Tree from Preorder and Inorder Traversal
LeetCode105 Construct Binary Tree from Preorder and Inorder Traversal
leetcode105 Construct Binary Tree from Preorder and Inorder Traversal
[leetcode]105. Construct Binary Tree from Preorder and Inorder Traversal