关注
Python版的 class BinaryTreeNode(object):
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def _find_parent(nodes, i):
i_parent = -1
max_min_val = -float('inf')
for j in range(i):
if max_min_val < nodes[j].val < nodes[i].val:
max_min_val = nodes[j].val
i_parent = j
return i_parent
def gen_bst(arr, n):
if not arr:
return
nodes = []
for num in arr:
nodes.append(BinaryTreeNode(num))
for i in range(1, n):
if nodes[i].val < nodes[i - 1].val:
nodes[i - 1].left = nodes[i]
else:
i_parent = _find_parent(nodes, i)
nodes[i_parent].right = nodes[i]
return nodes[0]
def level_order(root):
ret = []
if not root:
return ret
queue = [root]
while queue:
cur = queue.pop(0)
ret.append(cur.val)
if cur.left:
queue.append(cur.left)
if cur.right:
queue.append(cur.right)
return ret
if __name__ == '__main__':
arr = [8, 3, 1, 6, 4, 7, 10, 14, 13]
n = 9
root = gen_bst(arr, n)
ret = level_order(root)
print(' '.join([str(num) for num in ret]))
查看原帖
点赞 评论
相关推荐
在写总结的山羊很孤独:求面经啊
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# mt对你说过最有启发的一句话 #
22365次浏览 287人参与
# 机械/制造每日一题 #
79642次浏览 1407人参与
# 秋招被挂春招仍然能投的公司 #
3659次浏览 53人参与
# 你怎么看待AI面试 #
128505次浏览 724人参与
# 摸鱼被leader发现了怎么办 #
88691次浏览 590人参与
# 工作以后,你父母对你啥态度 #
21972次浏览 160人参与
# 求职遇到的搞笑事件 #
151242次浏览 882人参与
# 秋招特别不鸣谢 #
10306次浏览 141人参与
# 2025,我想...... #
80196次浏览 638人参与
# 什么是优秀的实习经历 #
4784次浏览 160人参与
# 今年秋招你收到了多少封邮件? #
14178次浏览 178人参与
# 选实习,你更看重哪方面? #
8382次浏览 175人参与
# 工作中遇到的歹人 #
19232次浏览 245人参与
# 工作后,你落下了哪些病根 #
8575次浏览 159人参与
# 实习简历求拷打 #
851次浏览 24人参与
# 快手求职进展汇总 #
698173次浏览 7034人参与
# 找工作有哪些冷知识 #
202623次浏览 2586人参与
# 被上班搭子“传染”了哪些习惯 #
3509次浏览 77人参与
# 工作丧失热情的瞬间 #
339298次浏览 2495人参与
# 打工人的精神状态 #
122368次浏览 1423人参与
