【BST】返回搜索二叉树最大的k个数

来源:互联网 发布:秦舞阳 知乎 编辑:程序博客网 时间:2024/06/17 05:44

题目:EPI


依然用递归的方式解决问题:

void find_largest_k_numbers_core(const shared_ptr<treenode> &root, const int k, vector<int> &res){if (root && res.size() < k){//右边的数字比较大,所以先处理右子树的元素find_largest_k_numbers_core(root->right, k, res);//右子树处理完,仍未达到k个数,则压入当前根节点if (res.size() < k){res.push_back(root->data);//处理完根节点,处理左子树find_largest_k_numbers_core(root->left, k, res);}}}vector<int> find_largest_k_numbers(const shared_ptr<treenode> &root,const int k){vector<int> res;if (root == nullptr || k <= 0)return res;find_largest_k_numbers_core(root, k, res);return res;}


0 0
原创粉丝点击