タイトル説明
二分探索木を考えると、その中の最初のk小さいノードを検索してください。例えば、(5,3,7,2,4,6,8)と、第3の接続点に係る数値は、4要約です。
問題解決のためのアイデア
二叉搜索树按照中序遍历的顺序打印出来正好就是排序好的顺序。
所以,按照中序遍历顺序找到第k个结点就是结果。
コードは以下の通りです
INTインデックス= 0; // カウンタ
のTreeNode KthNode(ルートツリーノード、int型K)
{
IF(!ルート= ヌル){ // プレオーダー見つけるk番目
のTreeNodeノード= KthNode(root.left、K);
IF(ノード!= nullの)
リターン・ノード、
インデックス ++ ;
IF(インデックス== K)を
返す;ルート
ノード = KthNode(root.right、K)を。
もし(!ノード= nullの)
リターン・ノード。
}
戻り ヌル。
}