/**

  • Definition for a binary tree node.
  • struct TreeNode {
  • int val;
  • TreeNode *left;
  • TreeNode *right;
  • TreeNode(int x) : val(x), left(NULL), right(NULL) {}
  • };
  • /
    class Solution {
    public:
    int kthSmallest(TreeNode* root, int k) {
      int res = 0;
      int cur = 0;
      mid_order(root ,cur ,res ,k);
      return res;
    }
      void mid_order(TreeNode *node ,int &cur ,int &res ,int k)   //形参的引用
      {
          if(node)
          {
              mid_order(node->left ,cur ,res ,k);
              cur++;
              if(cur == k)
              {
                  res = node->val;
                  return;           //返回值为void类型
              }
              mid_order(node->right ,cur ,res ,k);
          }
      }
    };