找出二叉查詢樹中第n大的值
阿新 • • 發佈:2019-01-27
問題:
給一個二叉查詢樹(BST),找出第 k 大的值。比如:
該圖中,第3大的值是10.
分析:
我們可以通過類似中序遍歷的方法把BST從大到小排序,然後,就可以得到第 k 大的值了。程式碼如下:
http://blog.csdn.net/beiyeqingtengpublic class NthNode { // k refers to the counter. it is a global variable. static int k = 0; //get the nth largest value in BST public void getNthnode(Node root, int n) { if (root == null) return; getNthnode(root.rightChild, n); k++; if (k == n) { System.out.print(root.toString()); return; } getNthnode(root.leftChild, n); } } class Node { Node leftChild = null; Node rightChild = null; int value; Node(int value) { this.value = value; } public String toString() { return value + ""; } }