You are viewing a single comment's thread. Return to all comments →
if (!root) return nullptr; if (key < root->val) { root->left = deleteNode(root->left, key); } else if (key > root->val) { root->right = deleteNode(root->right, key); } else { // Node to be deleted found if (!root->left) { TreeNode* rightChild = root->right; delete root; return rightChild; } if (!root->right) { TreeNode* leftChild = root->left; delete root; return leftChild; }
TreeNode* minNode = root->right; while (minNode->left) minNode = minNode->left; root->val = minNode->val; root->right = deleteNode(root->right, minNode->val); } return root;
}
Seems like cookies are disabled on this browser, please enable them to open this website
Delete a Node
You are viewing a single comment's thread. Return to all comments →
if (!root) return nullptr; if (key < root->val) { root->left = deleteNode(root->left, key); } else if (key > root->val) { root->right = deleteNode(root->right, key); } else { // Node to be deleted found if (!root->left) { TreeNode* rightChild = root->right; delete root; return rightChild; } if (!root->right) { TreeNode* leftChild = root->left; delete root; return leftChild; }
}