给定两棵二叉搜索树,给出两棵树上所有元素的节点值从小到大的排列
遍历树上所有的节点,然后记录结点的值
放在集合中排序后进行输出
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; } };
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树leetcode-图与搜索77-组合8364 人正在系统学习中