为什么只能输出5个数
package com.BinaryTree;
public class BinaryTreeDemo {
private Node root;
public void addNode(int data){
if(root==null)
root = new Node(data);
else{
root.add(data);
}
}
public void printNode(){
if(root!=null){
root.print();
}
}
class Node{
private int data;
private Node left;
private Node right;
public Node(int data) {
this.data = data;
}
public void add(int data){
if(this.data>data)
if(this.left==null){
this.left = new Node(data);
}
else{
this.left.add(data);
}else if(this.data<=data){
if(this.right==null){
this.right = new Node(data);
}
}else{
this.right.add(data);
}
}
//中序遍历
public void print(){
if(this.left!=null){
this.left.print();
}
System.out.print(this.data+"->");
if(this.right!=null){
this.right.print();
}
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
谢谢,已解决!
确实是你ifelse造成的,下面是修正的,其实你是两个大判断,但是你最后一个else匹配到你else if你需要加括号明确
if (this.data > data) {
if (this.left == null) {
this.left = new Node(data);
} else {
this.left.add(data);
}
} else if (this.data <= data) {
if (this.right == null) {
this.right = new Node(data);
} else {
this.right.add(data);
}
}
add方法里面 写if-else 就把自己绕进去了。。。