重建二叉树 -- C++迭代器解法

重建二叉树

http://www.nowcoder.com/questionTerminal/8a19cbe657394eeaac2f6ea9b0f6fcf6

class Solution {
public:
    typedef vector<int>::iterator vit;
    TreeNode* reConstructBinaryTree(const vit &preBeg,const vit &preEnd,
                                   const vit &vinBeg,const vit &vinEnd) {
        if (preBeg == preEnd) return nullptr;
        TreeNode *root = new TreeNode(*preBeg);

        const vit &it = find(vinBeg, vinEnd, *preBeg);
        auto size = it - vinBeg;
//         cout << root->val << size << endl;
        root->left = reConstructBinaryTree(preBeg + 1, preBeg + 1 + size,
                                          vinBeg, it);
        root->right = reConstructBinaryTree(preBeg + 1 + size, preEnd, it + 1, vinEnd);
        return root;
    }

    TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> vin) {
        return reConstructBinaryTree(pre.begin(), pre.end(), vin.begin(), vin.end());
    }

};
全部评论

相关推荐

这是什么操作什么意思,这公司我服了...
斯派克spark:意思是有比你更便宜的牛马了
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务