Я выполнял задание Leetcode, и мой код использовал примерно 0,5 КБ памяти больше, чем другие материалы, которые выглядели более сложными. Сама задача заключалась в инвертировании двоичного дерева. Хотя я отправлял свое решение несколько раз, чтобы получить средние значения времени выполнения и использования памяти для моего кода. Мой код ниже работает в среднем в течение 3 мс и занимает 8,5 кб памяти после 10 пробных отправок. 1004 *
class Solution {
public:
void invert(TreeNode* root)
{
if(root==nullptr)
return;
invert(root->left);
invert(root->right);
TreeNode* temp = root->right;
root->right = root->left;
root->left = temp;
}
TreeNode* invertTree(TreeNode* root) {
if(root==nullptr)
return nullptr;
invert(root);
return root;
}
};
Мне интересно, как данный код использует две функции и использует меньше памяти, чем мое решение? Кроме того, я относительно новичок в программировании, и мне интересно, является ли этот случай образцом более глубокого механизма c в языке C ++ или слишком придирчивым, чтобы вызывать какие-либо опасения. Спасибо за чтение