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

二叉搜索树的第k个结点

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

import java.util.*;
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
    // 二叉搜索树按照中序遍历的顺序打印出来正好就是排序好的顺序。
//     所以,按照中序遍历顺序找到第k个结点就是结果。
public class Solution {
    ArrayList<TreeNode> res =new ArrayList<>();
    TreeNode KthNode(TreeNode pRoot, int k) {
        Inorder(pRoot);
        if(res.size()>=k && k>0)
            return res.get(k-1);
        return null;
    }
    void Inorder(TreeNode pRoot){
        if(pRoot!=null){
        Inorder(pRoot.left);
        res.add(pRoot);
        Inorder(pRoot.right);
        }
    }



}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务