タイトル説明
二分探索木を考えると、その中の最初のk小さいノードを検索してください。例えば、(5,3,7,2,4,6,8)と、第3の接続点に係る数値は、4要約です。
ソリューション:
順トラバーサルでバイナリ検索ツリーが上昇しているので、カウンタは、順序ベースに添加することができるようになります。
1 クラスソリューション{ 2 公共: 3 ツリーノード* KthNode(ツリーノード* PROOT、INT K) 4 { 5 INT I = INT32_MIN。 6 戻りFUNC(PROOT、K、I)。 7 } 8 ツリーノード* FUNC(ツリーノード*ノード、INT K、INT&I){ 9 なら(ノード== nullptr){ 10 であれば(I == INT32_MIN){ 11 iは= 0 ; 12 } 13 リターンnullptr; 14 } 15 decltype(ノード)T。 16 であれば(T = FUNC(ノード- > 左、K、I)){ 17 リターンT。 18 } 19 ++ I。 20 もし(I == K){ 21 リターンノード。 22 } 23 であれば(T = FUNC(ノード- > 右、K、I)){ 24 リターンT。 25 } 26 リターンnullptr。 27 } 28 }。