遍历节点存入vector,之后排序,再取出相应的节点数据就可以了。
class Solution { public: int kthSmallest(TreeNode* root, int k) { vector<int>l; preorderTraversal(root, l); sort(l.begin(),l.end()); return l[k-1]; } void preorderTraversal(TreeNode* root, vector<int> &l) { if (root != NULL) { l.push_back(root->val); preorderTraversal(root->left, l); preorderTraversal(root->right, l); } } };
原文:https://www.cnblogs.com/zhangdalao/p/14695260.html