所以我正在做leetcode问题589。我只是想看看当下一个节点为null时是否可以返回向量。但是每当我运行代码时,都会出现此错误:
第933行:字符34:运行时错误:引用绑定到类型为“ struct Node *”(stl_vector.h)的空指针
我不知道如何解决此问题。
该节点在树中为空,因为root-> children [0]-> children [0]没有子级。但是,如何检查root-> children [0]-> children [0]没有孩子?
int i=1;
vector<int> result;
class Solution {
public:
vector<int> preorder(Node* root) {
if ((root->children[0]->children[0]->children[0])==NULL)
return result;
return result;
}
};
答案 0 :(得分:0)
我认为答案比这更仔细。在不知道其余代码的情况下,很难说您可以绝对保证在这种情况下存在什么。但是,完全的偏执会像
Scanner input = new Scanner(System.in);
List<Integer> numbers = new ArrayList<>();
while (true) {
String x = input.nextLine();
if (x.equals("Exit") || x.equals("x")) {
numbers.stream().sorted().forEach(
(number) -> System.out.print(number + " "));
System.out.print("Exiting...");
System.exit(0);
}
try { // If the entered value isn't a number.
numbers.add(Integer.parseInt(x));
} catch (NumberFormatException e) {
System.out.println("The next value : " + x + "isn't a number. It wasn't added in the list");
}
}
我非常确定这里存在某种设计缺陷……我认为这既是因为要经过多个跃点,又是拥有前一个节点的是if (root == NULL || root->children == NULL || root->children[0] == NULL
|| root->children[0]->children == NULL
|| root->children[0]->children[0] == NULL
|| root->children[0]->children[0]->children == NULL
|| root->children[0]->children[0]->children[0] == NULL)
,这是事实建议您在下树时不要将焦点移下,而只是在编码越来越多的步骤以获取要查看的元素。
编辑:提示:递归。通常,对于家庭作业,我宁愿不多讲一些代码示例,但我保留上面输入的代码,因为它主要是说明您当前方法的失败,而不是您自己做的事情。可以真正在您的作业中使用。