我正在尝试实现二叉树,而不是二叉树。我花了大量时间使用递归来编写插入操作,但没有得到。
它应该是一棵完整的树,从左到右填充。
有人可以帮助我吗?最好使用Java。
以下是执行此操作的迭代方法。(:(这甚至不起作用))
public static void insertNode(Node root,int x){
if(root==null) {
root = new Node(x);
return;
}
Node current;
Queue<Node> qq = new LinkedList<Node>();
((LinkedList<Node>) qq).push(root);
while(true){
current=qq.peek();
if(current.leftchild==null){
Node child = new Node(x);
child.parent = current;
current.leftchild=child;
return;
}
else { ((LinkedList<Node>) qq).push(current.leftchild);}
if(current.rightChild==null){
Node child = new Node(x);
child.parent=current;
current.rightChild=child;
return;
}
else{
((LinkedList<Node>) qq).push(current.rightChild);
}
((LinkedList<Node>) qq).pop();
}
答案 0 :(得分:0)
您的代码存在问题,就是您实际上想添加到链表时将其推入链表。
obj
将LinkedList.push(element)
添加到列表的开头,而element
将LinkedList.add(element)
添加到列表的末尾。以下是正确的代码段:
element