如何编写一个方法在二叉树(java)中按级别顺序(从左到右)插入节点?

How to write a method to insert nodes in level order(left to right) in binary tree (java)?

我一直在尝试编写一种方法来按级别顺序(从左到右)在二叉树中插入节点,并且它只在第一个节点(根)中插入值。这是我希望你能修复它的代码!!!

class TreeNode{
   int item;
   TreeNode left=null;
   TreeNode right=null;
 public TreeNode(int item){
    this.item=item;
}
}
 class Tree{
  public void insert(int item) {
    Queue<TreeNode> q = new LinkedList<>();
    if(root==null){
        root=new TreeNode(item);
        temp=root;
        q.offer(temp);
    }
    else{
        while (!q.isEmpty()) {
            temp = q.peek();
            if (temp.left == null) {
                temp.left = new TreeNode(item);
                break;
            }
            if (temp.right == null) {
                temp.right = new TreeNode(item);
                break;
            } else{
                q.offer(temp.left);
                q.offer(temp.right);
            q.poll();}

        }
      }}}

可以使用这段代码,每次调用insert方法时都必须将temp赋值给root

public void insert(int item) {
    Queue<TreeNode> q = new LinkedList<TreeNode>();

    if(root==null){
        root = new TreeNode(item);
    } else {
        temp = root;
        q.offer(temp);
        while (!q.isEmpty()) {
            temp = q.peek();
            if (temp.left == null) {
                temp.left = new TreeNode(item);
                break;
            }
            if (temp.right == null) {
                temp.right = new TreeNode(item);
                break;
            } else{
                q.offer(temp.left);
                q.offer(temp.right);
                q.poll();
            }
        }
    }
}