1 「」」 2は、 二分探索木を考えると、それにk番目の最小の要素を検索する機能kthSmallestを書く。 3 注意: 4 。あなたは、kは常に有効である1≤K≤BSTの総要素を仮定することができる 5 :実施例1の 6 の入力を:ルート= [3,1,4、ヌル、2]、K = 1 7 3 8 / \ 9 1 4 10 \ 11 2 12 出力:1 13 例2: 14 入力:ルート= [5,3,6、 2,4、NULL、NULL、1]、K = 3 15 5 16 / \ 17 3 6 18 / \ 19 2 4 20 / 21である 。1 22で 出力:. 3 23である "" " 24 " "" 25 使用するスタックプレオーダー、プラス決意文 26は IF LEN(RES)== K 27 "" " 28 #のバイナリツリーAの定義。ノード 29 #クラスツリーノード: 30 # DEF __init __(自己、X)は: 31である 。# self.val X = 32 # self.left = NONE 33がない # self.rightなし= 34ではない 35 クラスソリューション: 36 DEFkthSmallest(セルフ、根、K): 37 [ スタック= [] 38は RES = [] 39 CUR = ルート 40は ながらスタックまたはCUR: 41である IF CUR: 42がある stack.append(CUR) 43が CURが= cur.left 44である 他: 45 = CUR stack.pop() 46である res.append(Cur.Val) 47 IF LEN(RES)== K: #のトラバーサル順序は、文の中間決定 48 戻り RESを[-1 ] 49 CUR = cur.right