itai.marks
BAN USER
class TNode:
def __init__(self, value, left=None, right=None):
self.value = value
self.left = left
self.right = right
def to_indexed_list(tree, row, col, nodes):
nodes.append(((col, row), tree.value))
if tree.left:
to_indexed_list(tree.left, row + 1, col - 1, nodes)
if tree.right:
to_indexed_list(tree.right, row + 1, col + 1, nodes)
def print_tree(t):
nodes = []
to_indexed_list(t, 0, 0, nodes)
nodes = sorted(nodes, key=lambda x: x[0])
for ((_, _), v) in nodes:
print(v)
t = TNode(6, TNode(9, TNode(5, None, TNode(0)), TNode(1)), TNode(4, None, TNode(3, TNode(7))))
print_tree(t)
def merge_intervals(l1, l2):
intervals = sorted(l1 + l2, key=lambda x: x[0])
if len(intervals) < 2:
return intervals
prev_left = intervals[0][0]
prev_right = intervals[0][1]
result = []
for i in range(1, len(intervals)):
left = intervals[i][0]
right = intervals[i][1]
if left > prev_right:
result.append((prev_left, prev_right))
prev_left = left
prev_right = right
elif right > prev_right:
prev_right = right
result.append((prev_left, prev_right))
return result
- itai.marks August 06, 2019