java二叉树的建立

ismallboy 2016-09-21 06:06:03
	public static void main(String[] args) throws IOException {
// 创建二叉树(*表示null)
System.out.println("请输入二叉树:");

Scanner sc = new Scanner(System.in);
BTree bTree = new BTree();
bTree.createBTree(bTree.root, sc);
bTree.preOrder(bTree.root);}


	/**
* 前序创建二叉树(-1表示空)
* @param node
* @param sc
*/
public void createBTree(Node node, Scanner sc) {
if (sc.hasNext()) {
int data = Integer.valueOf(sc.next());
if (data != -1) {
node = new Node(data);
if (root == null) {
if (data == -1) {
return;
}
root = node;
}
createBTree(node.leftTree, sc);
createBTree(node.rightTree, sc);
}
}
}



这样子有什么问题么?但是这个二叉树就是建立不起来,怪异了
...全文
657 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
node 本来就是指向某个树叶节点的但是你node = new Node(data);之后他就重新指向了一个新的节点 node = new Node(data);是建了一个新节点 但是你并没有吧这个节点赋给左右孩子 类似于 node = new Node(data); root.leftChild = node;
rogerlin0330 2016-10-23
  • 打赏
  • 举报
回复
先不说算法写的对不对,scanner有nextInt方法不用,还用个Integer.valueOf。。。闲得蛋疼吗?
??(Leo) 2016-10-09
  • 打赏
  • 举报
回复
根节点存在,然后必须判断数据是到底是保存在左节点(得到为空的左节点保存)还是右节点。
pan__yy 2016-10-08
  • 打赏
  • 举报
回复
root变量在哪里声明了?
ismallboy 2016-09-21
  • 打赏
  • 举报
回复
调试过了,root的lefttree和rightTree一直都是null,但是明明就是已经赋值了的,估计是参数传递中引用传递和数值传递的问题?
KilSoul 2016-09-21
  • 打赏
  • 举报
回复
debug一下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧