1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| # @Title: 根据描述创建二叉树 (Create Binary Tree From Descriptions)
# @Author: 15816537946@163.com
# @Date: 2022-03-06 14:13:11
# @Runtime: 616 ms
# @Memory: 22.6 MB
class Solution:
def createBinaryTree(self, descriptions: List[List[int]]) -> Optional[TreeNode]:
v = dict()
deg = collections.Counter()
for p, c, left in descriptions:
if p not in v:
v[p] = TreeNode(p)
if c not in v:
v[c] = TreeNode(c)
if left == 1:
v[p].left = v[c]
else:
v[p].right = v[c]
deg[c] += 1
for i in v:
if deg[i] == 0:
return v[i]
return None
|