return root

    que = deque()
    que.append(root)
    while que:
        lvl_size = len(que)
        prev = None
        for _ in range(lvl_size):
            curr = que.popleft()
            if prev:
                prev.next = curr
            if curr.left:
                que.append(curr.left)
            if curr.right:
                que.append(curr.right)
            prev = curr
        prev.next = TreeNode(-1)


if __name__ == '__main__':
    root = TreeNode(12)
    root.left = TreeNode(7)
    root.right = TreeNode(1)
    root.left.left = TreeNode(9)
    root.right.left = TreeNode(10)
    root.right.right = TreeNode(5)
    connect_level_order_siblings(root)

    print("Level order traversal using 'next' pointer: ")
    root.print_level_order()