public void connect_wrong(TreeLinkNode root) {

    if (root == null) {
      return;
    }

    if (root.left != null) {
      if (root.right != null) {
        root.left.next = root.right;
      } else if (root.next != null) {
        root.left.next = findFirstChildOfNext(root.next);
      }
    }

    if (root.right != null) {
      root.right.next = findFirstChildOfNext(root.next);
    }

    // this is not constant space
    connect_wrong(root.left);
    connect_wrong(root.right);
  }