关注
第二题(递增二叉树): #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]))
查看原帖
点赞 评论
相关推荐
09-16 15:32
门头沟学院 Java 点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
17011次浏览 155人参与
# 机械人春招想让哪家公司来捞你? #
357095次浏览 3108人参与
# 为了求职,我做过的疯狂伪装 #
11644次浏览 206人参与
# 晒晒你的中秋福利 #
14922次浏览 96人参与
# 职场破冰,你们都聊什么? #
6578次浏览 66人参与
# bilibili求职进展汇总 #
87212次浏览 793人参与
# 工作压力大怎么缓解 #
104940次浏览 1050人参与
# 大家实习每天都在干啥 #
88839次浏览 518人参与
# 广联达求职进展汇总 #
10829次浏览 50人参与
# 机械人怎么评价今年的华为 #
208731次浏览 1524人参与
# 秋招OC许愿 #
346037次浏览 2525人参与
# 你的公司给实习生发中秋礼物吗 #
1455次浏览 26人参与
# 你面试被问到过哪些不会的问题? #
20408次浏览 783人参与
# 聊聊这家公司值得去吗 #
555967次浏览 3693人参与
# 电网笔面经互助 #
46545次浏览 431人参与
# 宣讲会你有哪些意向不到的收获 #
1081次浏览 20人参与
# 秋招的嫡长offer #
28257次浏览 266人参与
# 你觉得早上几点上班合适? #
82395次浏览 330人参与
# 秋招报数:你投了多少家公司? #
28080次浏览 290人参与
# 实习要如何选择和准备? #
114641次浏览 1436人参与