gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:22:00 25 4
gpt4 key购买 nike

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

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();
}
}
}
}

关于java - 如何编写在二叉树(java)中按级别顺序(从左到右)插入节点的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59412555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com