Construct Binary Tree from Preorder and Inorder Traversal
Posted Will Wu的学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Construct Binary Tree from Preorder and Inorder Traversal相关的知识,希望对你有一定的参考价值。
Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree.
分析: 根据前序遍历和中序遍历构造一棵树,递归求解即可
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void Build(int l1,int l2, int r1,int r2, const vector<int>& pre, const vector<int> & in, TreeNode*& root){ root = new TreeNode(pre[l1]); int i; for(i=r1; i<=r2; i++) if(in[i]==root->val) break; if(i==r1) root->left=nullptr; else Build(l1+1, l1+i-r1,r1, i-1 ,pre,in, root->left); if(i==r2) root->right=nullptr; else Build(l1+i-r1+1, l2, i+1, r2, pre, in, root->right); return; } TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { if(preorder.size()==0 && inorder.size()==0) return nullptr; TreeNode* root; Build(0,preorder.size()-1, 0, inorder.size()-1, preorder, inorder, root); return root; } };
以上是关于Construct Binary Tree from Preorder and Inorder Traversal的主要内容,如果未能解决你的问题,请参考以下文章
606. Construct String from Binary Tree
606. Construct String from Binary Tree
LeetCode Construct String from Binary Tree
Construct String From Binary Tree