654.最大二叉树
一遍过。但有优化空间:不用每次都构造新数组,可以传下标操作下标。
617.合并二叉树
以下我的想法,完整的构造了一棵二叉树,但是刚开始第二和第三个if里面都忘了return,一定一定要注意。还有,如果直接在传进去的树的基础上改造性能应该更好(视频参考解法)。
class Solution {
public:
TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
if (root1 == nullptr && root2 == nullptr) return nullptr;
if (root1 != nullptr && root2 == nullptr) {
TreeNode* node = new TreeNode(root1->val);
node->left = mergeTrees(root1->left, root2);
node->right = mergeTrees(root1->right, root2);
return node;
}
if (root1 == nullptr && root2 != nullptr) {
TreeNode* node = new TreeNode(root2->val);
node->left = mergeTrees(root1, root2->left);
node->right = mergeTrees(root1, root2->right);
return node;
}
TreeNode* node = new TreeNode(root1->val + root2->val);
node->left = mergeTrees(root1->left, root2->left);
node->right = mergeTrees(root1->right, root2->right);
return node;
}
};
700.二叉搜索树中的搜索
秒了。一旦找到目标node直接逐层返回结果。
class Solution {
public:
TreeNode* searchBST(TreeNode* root, int val) {
if (root == nullptr) return nullptr;
if (root->val == val) return root;
if (val < root->val) {
TreeNode* node = searchBST(root->left, val);
if (node != nullptr) return node;
}
if (val > root->val) {
TreeNode* node = searchBST(root->right, val);
if (node != nullptr) return node;
}
return nullptr;
}
};
98.验证二叉搜索树
忘了中序遍历可以完美验证。

被折叠的 条评论
为什么被折叠?



