马蜂窝二叉树那道题是搞笑的吗

给一个前序就能的到树的结构???#马蜂窝##吐槽#
全部评论
后面应该是3吧,怎么会是9呢
点赞
送花
回复
分享
发布于 2019-09-23 20:03
满二叉树?
点赞
送花
回复
分享
发布于 2019-09-23 19:56
滴滴
校招火热招聘中
官网直投
如果是二叉搜索树就可以了
点赞
送花
回复
分享
发布于 2019-09-23 19:56
关键给的案例也不是满二叉树啊
点赞
送花
回复
分享
发布于 2019-09-23 20:01
二叉搜索树或者是他把空节点用特殊符号表现出来的话也行做
点赞
送花
回复
分享
发布于 2019-09-23 20:02
4 的 中序遍历序列后面怎么是 9,没搞懂。
点赞
送花
回复
分享
发布于 2019-09-23 20:02
就很迷
点赞
送花
回复
分享
发布于 2019-09-23 20:12
这题目出的,数据结构基础就这水平吗。。。马蜂窝。。
点赞
送花
回复
分享
发布于 2019-09-23 20:23
层次遍历 不是前序遍历 我a了
点赞
送花
回复
分享
发布于 2019-09-23 20:30
后面改了,贴个代码吧,可惜有一组越界的错误最后才发现少了个-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)
点赞
送花
回复
分享
发布于 2019-09-23 20:33
可以的,根据总节点数量可以算出来左子树右子树节点数量,然后拼个树
点赞
送花
回复
分享
发布于 2019-09-23 20:35
做到一半该题目的哈哈哈哈,贴个代码,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))
点赞
送花
回复
分享
发布于 2019-09-23 20:39

相关推荐

2 2 评论
分享
牛客网
牛客企业服务