🖥 Перенос указателя вправо
Сложность: СредняяУсловие задачи: Дано бинарное дерево, нужно перенести каждый указатель на следующий узел на соответствующий правый правый элемент на текущем уровне либо же передать указатель на NULL в случае отсутствия узла.
Пример:
Ввод: root = [1,2,3,4,5,null,7]
Вывод: [1,#,2,3,#,4,5,7,#]
class Solution: def connect(self, root: 'Node') -> 'Node': if not root: return None q = deque() q.append(root) dummy=Node(-999) # to initialize with a not null prev while q: length=len(q) # find level length prev=dummy for _ in range(length): # iterate through all nodes in the same level popped=q.popleft() if popped.left: q.append(popped.left) prev.next=popped.left prev=prev.next if popped.right: q.append(popped.right) prev.next=popped.right prev=prev.next return root