• 剑指offer---重建二叉树


    class Solution 
    {
    public:
        TreeNode* reConstructBinaryTree(vector<int> pre, vector<int> vin)
        {
            int in_size = vin.size();
            if (in_size == 0)    return NULL;
            vector<int> XianXu_left;
            vector<int> XianXu_right;
            vector<int> ZhongXu_left;
            vector<int> ZhongXU_right;
    
            TreeNode* Node = new TreeNode(pre[0]);
    
            int weizhi = 0;
            for (int i = 0; i < in_size; ++i)
            {
            
                if (vin[i] == pre[0])
                {
                    break; 
                }
                ++weizhi;
            }
    
            for (int i = 0; i < weizhi; ++i)
            {
                ZhongXu_left.push_back(vin[i]);
            }
    
            for (int i = (weizhi + 1); i < in_size; ++i)
            {
                ZhongXU_right.push_back(vin[i]);
            }
    
            for (int i = 1; i < (ZhongXu_left.size() + 1); ++i)
            {
                XianXu_left.push_back(pre[i]);
            }
    
            for (int i = (ZhongXu_left.size() + 1); i < pre.size(); ++i)
            {
                XianXu_right.push_back(pre[i]);
            }
    
    
            Node->left = reConstructBinaryTree(XianXu_left, ZhongXu_left);
            Node ->right= reConstructBinaryTree(XianXu_right, ZhongXU_right);
            return Node;
        }
    };
  • 相关阅读:
    推箱子(简易版)
    [LeetCode] Word Ladder II
    [LeetCode] Path Sum
    [LeetCode] Word Ladder
    DFS & BFS
    [LeetCode] Surrounded Regions
    [LeetCode] Add Binary
    [LeetCode] Plus One
    [LeetCode] Single Number II
    [LeetCode] Single Number
  • 原文地址:https://www.cnblogs.com/159269lzm/p/7272955.html
Copyright © 2020-2023  润新知