码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode Construct Binary Tree from Preorder and Inorder Traversal

时间:2014-07-03 20:07:01      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   strong   os   

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

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

此题目有两种解决思路:

1)递归解决(比较好想)按照手动模拟的思路即可

2)非递归解决,用stack模拟递归

bubuko.com,布布扣
class Solution {
public:
    TreeNode *buildTree(vector<int>& preorder, int pre_left,int pre_right,
                        vector<int>& inorder,  int in_left, int in_right){
        if(pre_left > pre_right || in_left > in_right) return NULL;
        TreeNode *root = new TreeNode(preorder[pre_left]);
        int index = in_left;
        for( ; index <= in_right; ++ index ) if(inorder[index] == preorder[pre_left])  break;
        int left_cnt = index-in_left;
        root->left = buildTree(preorder,pre_left+1,pre_left+left_cnt,inorder,in_left,index-1);
        root->right = buildTree(preorder,pre_left+left_cnt+1,pre_right, inorder, index+1,in_right);
        return root;
    }
    
    TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) {
        if(preorder.size() == 0) return NULL;
        else return buildTree(preorder,0,preorder.size()-1, inorder,0,inorder.size()-1);
    }
};
递归解决

Leetcode Construct Binary Tree from Preorder and Inorder Traversal,布布扣,bubuko.com

Leetcode Construct Binary Tree from Preorder and Inorder Traversal

标签:style   blog   http   color   strong   os   

原文地址:http://www.cnblogs.com/xiongqiangcs/p/3821172.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!