关注
第二题(递增二叉树): #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]))
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
12309次浏览 156人参与
# 你认为工作的意义是什么 #
223458次浏览 1412人参与
# 你今年做了几份实习? #
8248次浏览 129人参与
# 说说你知道的学历厂 #
369471次浏览 1327人参与
# 你开始找寒假实习了吗? #
13969次浏览 201人参与
# 产品面经 #
238601次浏览 2099人参与
# 0经验如何找实习? #
24501次浏览 419人参与
# 大学最后一个寒假,我想…… #
71580次浏览 723人参与
# 大家每天通勤多久? #
64014次浏览 413人参与
# 你找工作经历过哪些骗局? #
8744次浏览 136人参与
# 大厂面试初体验 #
83052次浏览 378人参与
# 25年找工作是什么难度? #
14421次浏览 144人参与
# 实习越久越好,还是多多益善? #
16835次浏览 165人参与
# 一上班就想____,这正常吗? #
4719次浏览 90人参与
# 写简历别走弯路 #
870959次浏览 8700人参与
# 面试尴尬现场 #
203778次浏览 801人参与
# 字节出了豆包coding模型 #
6550次浏览 59人参与
# 什么样的公司千万别去 #
27228次浏览 143人参与
# 如何KTV领导 #
80375次浏览 521人参与
# 机械人晒出你的简历 #
144489次浏览 870人参与