二叉搜索树递归添加

时间:2016-10-10 14:37:50

标签: java recursion binary-search-tree

我正在尝试为我的BST进行递归添加。 public add方法采用int参数,private方法采用相同的int和Node。这是我到目前为止的代码

 public void add(int i) {

    add(i, root);

}

private void add(int i, Node n) {
    if (root==null){
        root=new Node(i);
    }

    if (i < n.element) {
        if (n.left != null) {
            add(i, n.left);
        } else {
            n.left = new Node(i);
        }
    } else if (i > n.element) {
        if (n.right != null) {
            add(i, n.right);
        } else {
            n.right = new Node(i);
        }
    }
}

我一直不断获取空指针,尝试调试,但我的逻辑中有一些我看不到的错误。

1 个答案:

答案 0 :(得分:2)

当您的树为空(root = null)时,您正确地创建了一个新节点并将其分配给 constructor(fb:FormBuilder){ this.recordform = fb.group({ name:['',Validators.required], if(checkbox == true){ test:['',Validators.required] } }); } 变量。但这就是它应该做的一切 因此:

<div class="col-md-8">
   <div class="form-group" >
      <label class="sr-only" for="name">test</label>
      <div class="input-group">
         <input type="text" class="form-control" formControlName="name"  id="name" placeholder="name"  >
      </div>
   </div>
</div>
<div class="checkbox">
  <label><input type="checkbox"class="form-control" formControlName="checkbox" id="checkbox" value="">test</label>
</div>

<div class="col-md-8">
   <div class="form-group" >
      <label class="sr-only" for="test">test</label>
      <div class="input-group">
         <input type="text" class="form-control" formControlName="test"  id="test" placeholder="test"  >
      </div>
   </div>
</div>


                                                            </div>

或者,如果你想:

root