72_leetcode_Construct Binary Tree from Preorder and Inorder Traversal

來源:互聯網
上載者:User

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:遞迴的情況;3:遞迴結束情況;4:首先獲得根節點,之後把兩個數組分別分成兩部分,遞迴分別得出左子樹和右子樹。

    TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder)    {        if(preorder.size() == 0 || inorder.size() == 0 || preorder.size() != inorder.size())        {            return NULL;        }                int size = (int)preorder.size();                return buildTreeCore(preorder, 0, inorder, 0, size);    }        TreeNode* buildTreeCore(vector<int> &preorder, int preStart,  vector<int> &inorder, int preIn, int length)    {        if(length == 1)        {            if(preorder[preStart] != inorder[preIn])            {                return NULL;            }        }                int rootValue = preorder[preStart];        TreeNode *root = new TreeNode(rootValue);                int i = 0;                for(; i < length; i++)        {            if(inorder[preIn + i] == rootValue)            {                break;            }        }                if(i == length)        {            return NULL;        }                if(i > 0)        {            root->left = buildTreeCore(preorder, preStart + 1, inorder, preIn, i);        }                if(i < length - 1)        {            root->right = buildTreeCore(preorder, preStart + i + 1, inorder, preIn + i + 1, length - 1 - i);        }                        return root;    }



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.