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

@ -23,25 +23,28 @@ struct TreeNode {
* @param list
* @return TreeNode*
*/
TreeNode* vecToTree(vector<int> list) {
TreeNode *root = new TreeNode(list[0]);
queue<TreeNode*> que;
que.emplace(root);
int i = 1;
while(!que.empty()) {
TreeNode *node = que.front();
TreeNode *vecToTree(vector<int> list) {
if (list.empty()) {
return nullptr;
}
auto *root = new TreeNode(list[0]);
queue<TreeNode *> que;
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;
}
@ -52,7 +55,7 @@ TreeNode* vecToTree(vector<int> list) {
* @param val
* @return TreeNode*
*/
TreeNode* getTreeNode(TreeNode *root, int val) {
TreeNode *getTreeNode(TreeNode *root, int val) {
if (root == nullptr)
return nullptr;
if (root->val == val)