Advertisement

剑指offer(64):二叉搜索树的k大节点

阅读量:

题目描述

已知一棵二叉搜索树,要求确定其中第k大的节点。

分析

若对二叉搜索树执行中序遍历操作,所得到的序列将呈现出递增的特性,因此通过中序遍历的方式可以便捷地获取该树中第k大的节点。在这一过程中,可引入一个计数器变量,每当访问一个节点时,计数器数值增加1。当计数器的值与k相等时,当前访问的节点即为所求的目标节点。

复制代码
    /*
    public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;
    
    public TreeNode(int val) {
        this.val = val;
    
    }
    
    }
    */
    public class Solution {
    int count = 0;  // 遍历计数
    TreeNode KthNode(TreeNode pRoot, int k) {
        if(pRoot == null || k <= 0)
            return null;
    
        TreeNode target = null;
        if(pRoot.left != null) 

全部评论 (0)

还没有任何评论哟~