8000 * Done with "2196. Create Binary Tree From Descriptions". · garciparedes/leetcode@4f4d366 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4f4d366

Browse files
committed
* Done with "2196. Create Binary Tree From Descriptions".
1 parent ad938e9 commit 4f4d366

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, val=0, left=None, right=None):
4+
# self.val = val
5+
# self.left = left
6+
# self.right = right
7+
class Solution:
8+
def createBinaryTree(self, descriptions: List[List[int]]) -> Optional[TreeNode]:
9+
nodes = dict()
10+
children = set()
11+
12+
for description in descriptions:
13+
parent, child, is_left = description
14+
15+
children.add(child)
16+
17+
if parent in nodes:
18+
parent = nodes[parent]
19+
else:
20+
parent = TreeNode(parent)
21+
nodes[parent.val] = parent
22+
23+
if child in nodes:
24+
child = nodes[child]
25+
else:
26+
child = TreeNode(child)
27+
nodes[child.val] = child
28+
29+
if is_left:
30+
parent.left = child
31+
else:
32+
parent.right = child
33+
34+
index = next(iter(nodes.keys() - children), None)
35+
if index is None:
36+
return None
37+
return nodes[index]

0 commit comments

Comments
 (0)
0