//寻找二叉搜索树的第k小第节点
//寻找二叉搜索树的第k小第节点 class Solution { public: TreeNode* recursion(TreeNode* root,int& k){ TreeNode* res; //如果左节点存在 if(root->left!=nullptr){ res=recursion(root->left,k); if(res!=nullptr){ return res; } } if(k>1){ k--; } else{ return root; } if(root->right!=nullptr){ res=recursion(root->right,k); if(res!=nullptr){ return res; } } return res; } int kthSmallest(TreeNode* root, int k) { TreeNode* res; int index=k-1; res=recursion(root,index); return res->val; } };
//二叉树 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };