[LeetCode] Construct Binary Tree from Inorder and Postorder

[LeetCode] Construct Binary Tree from Inorder and Postorder Traversal

Given inorder and postorder traversal of a tree, construct the binary tree.

Note:You may assume that duplicates do not exist in the tree.

递归构造

1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 *int val; 5 *TreeNode *left; 6 *TreeNode *right; 7 *TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; Solution {11 public:12TreeNode *createTree(vector<int> &inorder, int inBeg, int inEnd, vector<int> &postorder, int postBeg, int postEnd)13 {14if (inBeg > inEnd)15return NULL;root = postorder[postEnd]; index;(int i = inBeg; i <= inEnd; i++)22if (inorder[i] == root)23 {24index = i;25break;26 }len = index – inBeg;29TreeNode *left = createTree(inorder, inBeg, index – 1, postorder, postBeg, postBeg + len – 1);30TreeNode *right = createTree(inorder, index + 1, inEnd, postorder, postBeg + len, postEnd – 1);3132TreeNode *node = new TreeNode(root);33node->left = left;34node->right = right; node;37 }3839TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) {40// Start typing your C/C++ solution below(inorder.size() == 0)43return NULL;4445TreeNode *head = createTree(inorder, 0, inorder.size() – 1, postorder, 0, postorder.size() – 1); head;48 }49 };

posted on

,网站空间,香港虚拟主机,香港虚拟主机“人无完人金无足赤”,只要是人就不会是完美的,

[LeetCode] Construct Binary Tree from Inorder and Postorder

相关文章:

你感兴趣的文章:

标签云: