
本文共 3608 字,大约阅读时间需要 12 分钟。
������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������
������������������
���������������������������������������������������������������
������������������������������������������������������������
- ������������������������������������������������������������������������������������������������������������
������������������������������������������������������
���������������������������������������������������
���������������������������
#includeusing namespace std;struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}};class Solution { public: //buildTree������: ������preorder���inorder��������������� TreeNode* buildTree(vector & preorder, vector & inorder) { if (inorder.empty() || preorder.empty()) { return nullptr; } //��������� TreeNode* root = new TreeNode(preorder[0]); //��������������������������������������������������������� auto buildTreeAux = [&root](int preorder_idx, int inorder_left, int inorder_right) { //��������������������������������������� if (preorder_idx >= preorder.size()) return nullptr; //������������������������ int inorder_current = -1; for (int i = inorder_left; i <= inorder_right; ++i) { if (inorder[i] == preorder[preorder_idx]) { inorder_current = i; break; } } if (inorder_current == -1) { //������������������������������������������������������������ return nullptr; } //��������������������� root->left = buildTreeAux(preorder_idx + 1, inorder_left, inorder_current - 1); root->right = buildTreeAux(preorder_idx + 2, inorder_current + 1, inorder_right); return root; }; return buildTreeAux(0, 0, inorder.size() - 1); }};
������������
���������������������������������������������������
������������������������������������������������������������������������������
while (root), perform something
������������������������������������������������������������������������
���������������������������������������preorder���inorder���������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
