具有 return 值的遍历方法

traversal method with a return value

对于树,在遍历方法中我希望值被 returned。我只尝试了 return 一个值的方法。

 int inorder(BSTNode r) {
   int result = 0 ;
    if (r != null) {
        inorder(r.getLeft());
     result= r.getData();
        inorder(r.getRight());  
    }
   return result;
}

此代码完美运行,但我希望该方法 return 值而不是

private void inorder(BSTNode r) {
    if (r != null) {
        inorder(r.getLeft());
        System.out.print(r.getData() + " ");
        inorder(r.getRight());
    }
}

您想使用某种列表结构来积累数据:

void inorder(BSTNode r, List list) {
  if (r != null) {
    inorder(r.getLeft(), list);
    list.add(r.getData());
    inorder(r.getRight(), list);
  }
}

调用函数

List list = new List();
inorder(bst, list);

排序完成后,list 将包含树的值。

确切的语法取决于您使用的语言。