Merge pull request #56 from mgisr/master

fix(codes/cpp/include/TreeNode.hpp):  fix 'vecToTree' function
This commit is contained in:
Yudong Jin 2022-12-01 22:47:28 +08:00 committed by GitHub
commit 6dba81d145
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,24 +24,27 @@ struct TreeNode {
* @return TreeNode*
*/
TreeNode *vecToTree(vector<int> list) {
TreeNode *root = new TreeNode(list[0]);
if (list.empty()) {
return nullptr;
}
auto *root = new TreeNode(list[0]);
queue<TreeNode *> que;
que.emplace(root);
int i = 1;
while(!que.empty()) {
TreeNode *node = que.front();
size_t n = list.size(), index = 1;
while (index < n) {
auto node = que.front();
que.pop();
if(list[i] != INT_MAX) {
node->left = new TreeNode(list[i]);
if (index < n) {
node->left = new TreeNode(list[index++]);
que.emplace(node->left);
}
i++;
if(list[i] != INT_MAX) {
node->right = new TreeNode(list[i]);
if (index < n) {
node->right = new TreeNode(list[index++]);
que.emplace(node->right);
}
i++;
}
return root;
}