-
从root节点开始,DFS搜索直到叶子节点,同时在stack中顺序存储已经访问的节点。
-
如果搜索到叶子节点,当前的叶子节点被设为最近邻节点。
-
然后通过stack回溯:如果当前点的距离比最近邻点距离近,更新最近邻节点.然后检查以最近距离为半径的圆是否和父节点的超平面相交.如果相交,则必须到父节点的另外一侧,用同样的DFS搜索法,开始检查最近邻节点。如果不相交,则继续往上回溯,而父节点的另一侧子节点都被淘汰,不再考虑的范围中.
-
当搜索回到root节点时,搜索完成,得到最近邻节点。