关注
第二题(递增二叉树): #coding=utf-8
import sys
class Node(object):
def __init__(self, x, left = None, right = None):
self.val = x
self.left = left
self.right = right
def func(root):
if not root:
return "NO"
cur_level_sum, cur_level = -1, [root]
while cur_level:
cur_level_val = []
next_level = []
for node in cur_level:
cur_level_val.append(node.val)
if node.left:
next_level.append(node.left)
if node.right:
next_level.append(node.right)
if cur_level_sum >= sum(cur_level_val):
return "NO"
cur_level_sum = sum(cur_level_val)
cur_level = next_level
return "YES"
if __name__ == "__main__":
T = int(sys.stdin.readline().strip())
for _ in range(T):
N = int(sys.stdin.readline().strip())
id_node_dict = {}
# 构建哈希表 key: 结点编号 value:结点
for i in range(N):
val, left, right = list(map(int, sys.stdin.readline().strip().split()))
id_node_dict[i] = Node(val, left, right)
# 确定根节点:
sub_tree_id = []
for id, node in id_node_dict.items():
if node.left != -1 and node.left not in sub_tree_id:
sub_tree_id.append(node.left)
if node.right != -1 and node.right not in sub_tree_id:
sub_tree_id.append(node.right)
root_id = sum(range(N)) - sum(sub_tree_id)
# 构建二叉树:
for id, node in id_node_dict.items():
if node.left == -1:
node.left = None
else:
node.left = id_node_dict[node.left]
if node.right == -1:
node.right = None
else:
node.right = id_node_dict[node.right]
print(func(id_node_dict[root_id]))
查看原帖
点赞 评论
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
236247次浏览 1932人参与
# 学历or实习经历,哪个更重要 #
40040次浏览 292人参与
# 北方华创开奖 #
22081次浏览 251人参与
# 地方国企笔面经互助 #
2387次浏览 6人参与
# 应届生被毁约被毁意向了怎么办 #
25822次浏览 235人参与
# 选完offer后,你后悔学本专业吗 #
8485次浏览 55人参与
# 机械应届生薪资要多少才合适? #
12196次浏览 59人参与
# 你最想要的公司福利是? #
38175次浏览 78人参与
# 查收我的offer竞争力报告 #
15292次浏览 209人参与
# 一觉醒来,我觉醒了超级打工人系统 #
2597次浏览 32人参与
# 没有实习经历,还有机会进大厂吗 #
804060次浏览 13792人参与
# 你觉得第一学历对求职有影响吗? #
14735次浏览 121人参与
# 我的工作日记 #
20869次浏览 269人参与
# 寒假躺平还是提前实习 #
57711次浏览 424人参与
# 秋招被确诊为…… #
51990次浏览 291人参与
# 总结:哪家公司面试体验感最差 #
24899次浏览 121人参与
# 公司情报交流地 #
31402次浏览 222人参与
# 不给转正的实习,你还去吗 #
1514943次浏览 16955人参与
# 00后45度躺现状 #
38155次浏览 310人参与
# 机械人,签完三方你在忙什么? #
23599次浏览 123人参与
# 实习,投递多份简历没人回复怎么办 #
2386354次浏览 34244人参与