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

二叉搜索树的第k个结点

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

中序遍历解决树中top K问题

本题就直接用递归来做了

public class Solution {
//为什么可以直接获取list中的第k-1个节点,就是所需节点?
//题目已经告诉这是一棵二叉搜索树,所以是有序的(根节点的值大于左子树,小于右子树)
//在中序遍历中二叉搜索树的遍历结果是从小到大的,也即升序输出
//所以,获取list中第k-1个元素即为所需元素节点
    List<TreeNode> list = new ArrayList<>();
    TreeNode KthNode(TreeNode pRoot, int k) {
        inorderDfs(pRoot);
        if(pRoot == null || k == 0 || k > list.size()) return null;
        return list.get(k-1);
    }
    public void inorderDfs(TreeNode root){
        if(root == null) return;
        inorderDfs(root.left);
        list.add(root);
        inorderDfs(root.right);
    }


}
全部评论

相关推荐

每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
沉淀去了,8月是不是机会会多一点,。打招呼300+,就一个小厂面试,聊了十分钟天就让我去了,暑假继续沉淀了,到八月九月冲了
丰川打工祥:我目前的体感是,双非本+一段小厂实习,基本约不到中厂的面。已经开始第二段小厂了。可能的确是最近hc太少了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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