如何检查节点是否为空

时间:2019-01-27 22:49:04

标签: c++ pointers tree null traversal

enter image description here所以我正在做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;
   }
  };

1 个答案:

答案 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) ,这是事实建议您在下树时不要将焦点移下,而只是在编码越来越多的步骤以获取要查看的元素。

编辑:提示:递归。通常,对于家庭作业,我宁愿不多讲一些代码示例,但我保留上面输入的代码,因为它主要是说明您当前方法的失败,而不是您自己做的事情。可以真正在您的作业中使用。