leetcode每日一题-1305. 两棵二叉搜索树中的所有元素
简单题:中序+归并
class Solution {
public:
vector<int> ans1,ans2,ans3;
void dfs(TreeNode* root,vector<int> &ans){
if(root==nullptr) return ;
dfs(root->left,ans);
ans.emplace_back(root->val);
dfs(root->right,ans);
}
vector<int> getAllElements(TreeNode* root1, TreeNode* root2) {
dfs(root1,ans1);
dfs(root2,ans2);
int i=0,j=0;
while(i<ans1.size() && j<ans2.size()){
if(ans1[i]>ans2[j]){
ans3.emplace_back(ans2[j]);
j++;
}else{
ans3.emplace_back(ans1[i]);
i++;
}
}
while(i<ans1.size()) ans3.emplace_back(ans1[i++]);
while(j<ans2.size()) ans3.emplace_back(ans2[j++]);
return ans3;
}
};