题解 | #二叉搜索树的第k个结点#
二叉搜索树的第k个结点
http://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a
- 注意k == 0 的边界条件
- 中序遍历时升序数列。
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: vector<TreeNode*> res; void dfs(TreeNode* pRoot){ if(!pRoot){ return; } dfs(pRoot->left); res.push_back(pRoot); dfs(pRoot->right); } TreeNode* KthNode(TreeNode* pRoot, int k) { if(!pRoot||k==0){ return NULL; } dfs(pRoot); return res[k-1]; } };
剑指Offer 文章被收录于专栏
剑指offer的解析结合