Easy breadth first traversal from right to left
class Solution:
    def connect(self, root: 'Node') -> 'Node':
        if root == None:
            return root
        node = root
        queue = collections.deque()
        queue.append(node)
        while(queue):
            l = len(queue)
            left, right = None, None
            for _ in range(l):
                val = queue.popleft()
                right = left
                left = val
                left.next = right
                if val.right:
                    queue.append(val.right)
                if val.left:
                    queue.append(val.left)
        return node
Comments (0)