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