Construct Binary Tree from Preorder and Inorder Traversal
2016-02-25 22:18
399 查看
题目名称
105. Construct Binary Tree from Preorder and Inorder Traversal
描述
Given preorder and inorder traversal of a tree, construct the binary tree.
分析
详细分析过程见我的博客二叉树——根据二叉树遍历序列构造二叉树
C++代码
105. Construct Binary Tree from Preorder and Inorder Traversal
描述
Given preorder and inorder traversal of a tree, construct the binary tree.
分析
详细分析过程见我的博客二叉树——根据二叉树遍历序列构造二叉树
C++代码
/** * 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: TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { return create(preorder,inorder, 0,preorder.size()-1,0,inorder.size()-1); } TreeNode* create(vector<int>& preorder,vector<int>& inorder,int pl,int pr,int il,int ir) { if(pl>pr) return nullptr; TreeNode* node = new TreeNode(preorder[pl]); int pos; for(int i = il;i<=ir;i++) { if(inorder[i] == node->val){ pos = i; break; } } node->left = create(preorder,inorder,pl+1,pl+pos-il,il,pos-1); node->right = create(preorder,inorder,pl+pos-il+1,pr,pos+1,ir); return node; } };
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解