题解 | #二叉搜索树的第k个结点#
二叉搜索树的第k个结点
http://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a
先序遍历+全局变量
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: int num; TreeNode* kNode; TreeNode* KthNode(TreeNode* pRoot, int k) { num = k; preOrder(pRoot); return kNode; } void preOrder(TreeNode* pRoot){ if(!pRoot) return; if(pRoot->left) preOrder(pRoot->left); if(num==1) { kNode = pRoot; num--; return; } else if(num>1) --num; else return; if(pRoot->right) preOrder(pRoot->right); } };