全部评论
后面应该是3吧,怎么会是9呢
做到一半该题目的哈哈哈哈,贴个代码,84%后改的,改完没时间测了 import sys
def postNext(pre, k):
size = len(pre) - 1
if 2 * k + 1 <= size:
k = 2 * k + 1
while k * 2 <= size:
k = k * 2
return pre[k]
while k % 2 != 0 and k > 1:
k = k // 2
if k > 1:
return pre[k // 2]
return -1
if __name__ == "__main__":
line = sys.stdin.readline()
pre = [0] + list(map(int,line.strip().split(',')))
k = int(input())
print(postNext(pre, k))
可以的,根据总节点数量可以算出来左子树右子树节点数量,然后拼个树
后面改了,贴个代码吧,可惜有一组越界的错误最后才发现少了个-1 import sys
line = sys.stdin.readline()
l = list(map(int, line.strip().split(",")))
index = int(sys.stdin.readline().strip())
x = 0
while True:
if 2 ** x > len(l):
break
x += 1
l2 = [0] * len(l)
down = True
xx = 0
plus = 0
for i in range(len(l)-1):
if 2**xx+plus-1>=len(l)-1:
down = False
xx-=1
plus += 1
while 2**xx+plus >= 2**(xx+1):
if down:
xx += 1
if xx == x:
xx = x-1
down = False
plus += 1
else:
xx -= 1
if xx == -1:
xx = 0
down = True
plus += 1
l2[2**xx+plus-1] = l[i]
if down:
xx += 1
if xx == x:
xx = x - 1
down = False
plus += 1
else:
xx -= 1
if xx == -1:
xx = 0
down = True
plus += 1
l2[2**xx-2] = l[-1]
for i in range(1, len(l2)):
if l2[i] == index:
print(l2[i-1])
sys.exit(0)
print(-1)
层次遍历 不是前序遍历 我a了
这题目出的,数据结构基础就这水平吗。。。马蜂窝。。
就很迷
4 的 中序遍历序列后面怎么是 9,没搞懂。
二叉搜索树或者是他把空节点用特殊符号表现出来的话也行做
关键给的案例也不是满二叉树啊
如果是二叉搜索树就可以了
满二叉树?
相关推荐
11-18 22:06
门头沟学院 golang 牛客28967172...:毕业工作,考研,考公是完全不同的方向。
99%的人拼尽全力也只能把一个做好(能做好都已经是佼佼者了,比如进进大厂,考985或者考公)
如果你确定要考研可以不用学任何就业技术框架,也不用实习经验,刷题背知识点就行,但注意必须考92院校起步,因为这个年代双非硕毕业后完全不如双非本(互联网行业),可以说双非硕在互联网就业完全是负收益
点赞 评论 收藏
分享
notbeentak...:就抓,嗯抓,开不开匿名都要抓,一点坏事不让说,就对公司顶礼膜拜佩服的五体投地就对了 点赞 评论 收藏
分享
11-20 15:13
门头沟学院 Java 点赞 评论 收藏
分享
