【发布时间】:2019-06-18 07:30:24
【问题描述】:
我正在尝试使用迭代方法在二叉搜索树中插入元素,但我得到 NullPointerException 并且我无法弄清楚为什么会出现此错误。我尝试更改循环并检查温度,但我没有得到那里发生的错误。 编辑:- 我已经添加了整个代码。
import java.util.*;
import java.io.*;
class Node {
Node left;
Node right;
int data;
Node(int data) {
this.data = data;
left = null;
right = null;
}
}
class Solution {
public static void preOrder(Node root) {
if (root == null)
return;
System.out.print(root.data + " ");
preOrder(root.left);
preOrder(root.right);
}
/* Node is defined as :
class Node
int data;
Node left;
Node right;
*/
public static Node insert(Node root, int data) {
Node inserter = new Node(data);
Node temp = root;
while (true) {
if (inserter.data <= temp.data) {
if (temp.left == null) {
temp.left = inserter;
break;
} else
temp = temp.left;
} else {
if (temp.right == null) {
temp.right = inserter;
break;
} else
temp = temp.right;
}
}
return root;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
Node root = null;
while (t-- > 0) {
int data = scan.nextInt();
root = insert(root, data);
}
scan.close();
preOrder(root);
}
}
【问题讨论】:
-
根节点可以为 Null。你检查了吗?
-
你从哪里得到空指针?在您的代码中的哪一行?
-
@TheWhiteRabbit ``` if (temp.left == null) ``` 在这一行我收到 NullPointerException 错误。
-
您似乎将 null 传递给第一个参数 -
root。您没有发布调用此方法的代码,因此我们无法为您提供更多帮助。
标签: java nullpointerexception binary-search-tree