package Ġtree . b int ree Ċ Ċ import Ġutil . One Array Ċ import Ġutil . one ArrayOf Ċ import Ġutil . pretty Print Tree Ċ Ċ // Ġgiven Ġa Ġpre - order Ġtraversal Ġof Ġa Ġbinary Ġsearch Ġtree Ġas Ġan Ġarray ĠA [ 1 .. n ] Ċ // Ġreconstruct Ġits Ġcorresponding Ġb st Ċ Ċ fun ĠOne Array < Int >. re constr ct B ST (): ĠBin TreeNode < Int > Ġ{ Ċ ĉ val Ġpre Ġ= Ġthis Ċ ĉ val Ġin order Ġ= Ġpre . sorted () Ċ ĉ return Ġbin Tree From ( pre , Ġin order ) !! Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ Ċ ĉ val ĠA Ġ= Ġone ArrayOf ( 5 , Ġ 3 , Ġ 2 , Ġ 1 , Ġ 4 , Ġ 1 0 , Ġ 8 , Ġ 1 9 ) Ċ ĉ println ( A . re constr ct B ST (). pretty Print Tree ()) Ċ }