/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int GLOBAL_K,RES;
void dfs(struct TreeNode* root)
{
if(root==NULL) return;
dfs(root->right); // 走到这一步就会找更大的,不会往下走,直到走到底
if(GLOBAL_K==0) return;
if(--GLOBAL_K==0) RES=root->val;
dfs(root->left); // 当右边走完了,才会走左边
}
int kthLargest(struct TreeNode* root, int k){
GLOBAL_K=k;
dfs(root);
return RES;
}
二叉树:二叉搜索树找第K大
最新推荐文章于 2022-10-10 21:27:17 发布