关注
第二题(递增二叉树): #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]))
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
28224次浏览 202人参与
# 我与AI的日常 #
9330次浏览 128人参与
# 27届实习投递记录 #
106323次浏览 1051人参与
# 你是怎么和mt相处的? #
108995次浏览 566人参与
# 我的求职总结 #
507065次浏览 7041人参与
# 数字马力求职进展汇总 #
356611次浏览 2405人参与
# 工作压力大怎么缓解 #
169316次浏览 1381人参与
# 腾讯工作体验 #
644512次浏览 3905人参与
# 材料专业就业可以去哪些企业岗位 #
68783次浏览 396人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
168187次浏览 913人参与
# 我的租房踩坑经历 #
222803次浏览 1156人参与
# 同花顺工作体验 #
17049次浏览 27人参与
# 牛客租房专区 #
206638次浏览 2582人参与
# 你的房租占工资的比例是多少? #
101484次浏览 906人参与
# 滴!实习打卡 #
859884次浏览 6896人参与
# 嵌入式转岗的难度怎么样 #
141346次浏览 2842人参与
# 如果公司降薪,你会跳槽吗? #
168108次浏览 964人参与
# 产运销实习日记 #
107233次浏览 740人参与
# 摸鱼被leader发现了怎么办 #
206756次浏览 937人参与
# 你在职场上见过哪些“水货”同事 #
41336次浏览 175人参与
查看10道真题和解析