boolean backtrackDFS(v) {
If (SolutionFound(v)) return true;
Mark vertex v as reached.
for (each unreached vertex u adjacenct from v)
if (backtrakDFS(u)) return true;
Unmark vertex v;
return false;
}
这里为什么Unmark vertex v
需要?为什么添加这样的行是安全的,因此 v 再次无法访问,会导致重新访问吗?