LC 0116 [M] Populating Next Right Pointers in Each Node - ALawliet/algorithms GitHub Wiki
"""
# Definition for a Node.
class Node:
def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):
self.val = val
self.left = left
self.right = right
self.next = next
"""
class Solution:
def connect(self, root: 'Node') -> 'Node':
if not root: return
Q = deque([root])
while Q:
node = Q.popleft()
if node.left and node.right:
node.left.next = node.right
if node.next:
node.right.next = node.next.left
Q.append(node.left)
Q.append(node.right)
return root