No testdata at current.
题目说明给出的是一棵平衡的满二叉树,且节点个数是2n−12^n-12n−1,所以构造该二叉树的方法其实和给定的顺序无关。
假设节点个数m=2n−1m=2^n-1m=2n−1,编号为1,2,...,m1,2,...,m1,2,...,m。那么根节点编号就是⌊1+m2⌋\lfloor{\frac{1+m}{2}}\rfloor⌊21+m⌋。之后,左子树的编号范围就变成了[1,⌊1+m2⌋−1][1,\lfloor{\frac{1+m}{2}}\rfloor-1][1,⌊21+m⌋−1],而右子树的范围就变成了[⌊1+m2⌋+1,m][\lfloor{\frac{1+m}{2}}\rfloor+1,m][⌊21+m⌋+1,m]。如此往复。所以我们只需要将目标值与当前节点编号比较,并判断是走左子树还是右子树就行了。
本题属于以下题库,请选择所需题库进行购买
ScanQRCodePrompt
GoToPasswordLoginPrompt