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);
}
}
}
这样子有什么问题么?但是这个二叉树就是建立不起来,怪异了
// 创建二叉树(*表示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);
}
}
}
这样子有什么问题么?但是这个二叉树就是建立不起来,怪异了
node = new Node(data);是建了一个新节点
但是你并没有吧这个节点赋给左右孩子
类似于
node = new Node(data);
root.leftChild = node;