关注
第二题(递增二叉树): #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]))
查看原帖
点赞 评论
相关推荐
鑫鑫向栄:爱你,妈咪 点赞 评论 收藏
分享
程序员花海_:实习写的太偏技术了 分库分表这种一看就和应届生没关系
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 生物制药/化工校招攻略 #
72834次浏览 338人参与
# 拿到offer之后,可以做些什么 #
84010次浏览 437人参与
# MiniMax求职进展汇总 #
1031次浏览 23人参与
# 你觉得面试是靠实力还是靠运气 #
27095次浏览 297人参与
# 牛客十周岁生日快乐 #
203812次浏览 1913人参与
# 哪些公司在招寒假实习? #
21433次浏览 281人参与
# 硬件/芯片公司工作体验 #
142103次浏览 941人参与
# 怎么防止在试用期被辞退 #
153683次浏览 959人参与
# TCL求职进展汇总 #
139730次浏览 658人参与
# 卷__卷不过你们,只能卷__了 #
14534次浏览 324人参与
# 招聘要求与实际实习内容不符怎么办 #
149664次浏览 889人参与
# 国企vs私企,你更想去? #
306503次浏览 2496人参与
# 荣耀求职进展汇总 #
1106140次浏览 5652人参与
# 26年哪些行业会变好/更差 #
21842次浏览 315人参与
# 写论文的崩溃时刻 #
7970次浏览 170人参与
# 秋招遇到的奇葩面试题 #
103106次浏览 422人参与
# 业务面应该做哪些准备 #
86806次浏览 874人参与
# 你们的毕业论文什么进度了 #
1234377次浏览 9905人参与
# 去年的flag与今年的小目标 #
11940次浏览 228人参与
# 腾讯音乐求职进展汇总 #
148463次浏览 1057人参与
# 拼多多求职进展汇总 #
821584次浏览 6565人参与
查看15道真题和解析