[leetcode] 1305. 两棵二叉搜索树中的所有元素 | 遍历
给定两棵二叉搜索树,给出两棵树上所有元素的节点值从小到大的排列
遍历树上所有的节点,然后记录结点的值
放在集合中排序后进行输出
Java_code:
class Solution {
List<Integer> ret = new ArrayList<>();
public List<Integer> getAllElements(TreeNode root1, TreeNode root2) {
if(root1 != null) dfs(root1);
if(root2 != null) dfs(root2);
Collections.sort(ret);
return ret;
}
public void dfs(TreeNode root){
ret.add(root.val);
if(root.left != null) dfs(root.left);
if(root.right != null) dfs(root.right);
}
}
cpp_code:
class Solution {
public:
vector<int> ret;
void dfs(TreeNode *root) {
ret.push_back(root->val);
if(root->left != nullptr) dfs(root->left);
if(root->right != nullptr) dfs(root->right);
}
vector<int> getAllElements(TreeNode* root1, TreeNode* root2) {
if(root1 != nullptr) dfs(root1);
if(root2 != nullptr) dfs(root2);
sort(ret.begin(),ret.end());
return ret;
}
};