construct-binary-tree-from-preorder-and-inorder-traversal
2016-12-23 19:02
411 查看
学会递归地去解决问题,明白每层自己要做什么,层与层的相关性。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ TreeNode* f(vector<int> &preorder, vector<int> &inorder,int l1,int r1,int l2,int r2); class Solution { public: TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) { return f(preorder,inorder,0,preorder.size()-1,0,inorder.size()-1); } }; TreeNode* f(vector<int> &preorder, vector<int> &inorder,int l1,int r1,int l2,int r2) { if(l2>r2) return NULL; int i=l2,cnt=0; for (;inorder[i]!=preorder[l1]&&i<=r2;i++,cnt++); if (i>r2) return NULL; TreeNode* head = new TreeNode(preorder[l1]); head->left = f(preorder,inorder,l1+1,l1+cnt,l2,i-1); head->right = f(preorder,inorder,l1+cnt+1,r1,i+1,r2); return head; }
相关文章推荐
- construct-binary-tree-from-preorder-and-inorder-traversal Java code
- construct-binary-tree-from-preorder-and-inorder-traversal
- 【construct-binary-tree-from-preorder-and-inorder-traversal】
- construct-binary-tree-from-preorder-and-inorder-traversal
- 【construct-binary-tree-from-preorder-and-inorder-traversal】
- 【construct-binary-tree-from-preorder-and-inorder-traversal】
- LeetCode--construct-binary-tree-from-preorder-and-inorder-traversal
- construct-binary-tree-from-preorder-and-inorder-traversal
- leetcode — construct-binary-tree-from-preorder-and-inorder-traversal
- *Leetcode_construct-binary-tree-from-preorder-and-inorder-traversal
- leetcode--construct_binary_tree_from_preorder_and_inorder_traversal
- leetcode — construct-binary-tree-from-preorder-and-inorder-traversal
- construct-binary-tree-from-preorder-and-inorder-traversal——前序和中序求二叉树
- construct-binary-tree-from-inorder-and-postorder-traversal
- LeetCode--construct-binary-tree-from-inorder-and-postorder-traversal
- construct-binary-tree-from-preorder-and-inorder
- construct-binary-tree-from-inorder-and-postorder-traversal
- leetcode--ConstructBinaryTreefromInorderandPostorderTraversal
- leetcode — construct-binary-tree-from-inorder-and-postorder-traversal
- *Leetcode_construct-binary-tree-from-inorder-and-postorder-traversal