题解 | #二叉搜索树的第k个结点#

二叉搜索树的第k个结点

http://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a

中序遍历,并将结点保存在数组中,数组k-1下标对应的结点就是二叉搜索树的第k个结点。

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
class Solution {
public:
    void in_order(TreeNode* root, vector<TreeNode*>& result){
        if(root==nullptr) return;
        in_order(root->left,result);
        result.push_back(root);
        in_order(root->right,result);
    }
    
    TreeNode* KthNode(TreeNode* pRoot, int k) {
        if(pRoot==nullptr || k==0) return nullptr;
        vector<TreeNode*> in_vec{};
        in_order(pRoot, in_vec);
        return in_vec[k-1];
    }
};




全部评论

相关推荐

不愿透露姓名的神秘牛友
04-25 10:45
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务