public List <BinaryTreeNode <T> > FindAll(Predicate <BinaryTreeNode <T> > match, IteratorMode searchIteratorMode = IteratorMode.Pre) { var retNodes = new List <BinaryTreeNode <T> >(); // 如果此二叉树实例为空树,则返回空列表 if (IsEmpty) { return(retNodes); } retNodes.AddRange(RootNode.GetIterator(searchIteratorMode).Where(node => match(node))); return(retNodes); }
public BinaryTreeNode <T> FindOne(Predicate <BinaryTreeNode <T> > match, IteratorMode searchIteratorMode = IteratorMode.Pre) { // 如果此二叉树实例为空树,则返回空 否则 获取第一个被匹配的结点 return(IsEmpty ? null : RootNode.GetIterator(searchIteratorMode).FirstOrDefault(node => match(node))); }