美文网首页
面试题54(剑指offer)--二叉搜索树的第K大节点

面试题54(剑指offer)--二叉搜索树的第K大节点

作者: Tiramisu_b630 | 来源:发表于2019-08-14 10:22 被阅读0次

    题目: 给定一棵二叉搜索树,请找出其中的第k小的结点。

    示例:

    例如,(5,3,7,2,4,6,8)中,按结点数值大小顺序第三小结点的值为4。
    

    解法:

        //中序遍历找到第k小的节点
        private  TreeNode lastNode = null;
        private  int count = 0;
        TreeNode KthNode(TreeNode pRoot, int k)
        {
            treeInOrder(pRoot, k);
            return lastNode;
        }
         private  void treeInOrder(TreeNode pRoot, int k) {
            if (pRoot == null || count >= k) {
                return;
            }
            treeInOrder(pRoot.left, k);
            count++;
            if (count == k) {
                lastNode = pRoot;
            }
            treeInOrder(pRoot.right, k);
        }
    

    相关文章

      网友评论

          本文标题:面试题54(剑指offer)--二叉搜索树的第K大节点

          本文链接:https://www.haomeiwen.com/subject/isgwjctx.html