個人的な理解
DFS(深さ優先探索)と同様のBFS、だけでなく、簡単なグラフ探索アルゴリズムは、その主なアイデアは、次のとおりです。最も深い位置まで各支店へのアクセスは、これまでのところまで継続することはできません。
ダイヤグラム
今、私たちは、ノードG(必ずしも最適ではない)、DFS次の手順にノードAからのパスを見つけたいです。
図1は、それがノードEに到達するまで、ルートノードAは、選択パスのノードB、及び背面から出発して、任意のさらなる行くことができません
2、次にバックAに、経路選択のノードC、ノードEを選択し、Eが訪問することが見出され、ノードCにバックされています
3それはノードGに到達するまで、パスは、ノードF、及び背面を選択
4ので、そのノード・パスのノードGにA:A-> C-> F-> G
擬似コード:
ブールDFS(ノードルートノードターゲット){
<ノード> vistised設定します。
スタック<ノード>スタック。
vistisedにルートノードを追加します。
スタックにルートノードを追加します。
一方、{(スタックが空ではありません)
スタックのノードCUR =トップノード。
(CUR ==ターゲット)がtrueを返す場合は、
(:CURの子ノードのノード次){用
{(次visistedされていない)場合
次vistisedに追加します。
スタックの隣に追加します。
}
}
スタックからCURを削除します。
}
falseを返します。
}
例に対応する滞在ボタン
https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
https://leetcode-cn.com/problems/decode-string/
https://leetcode-cn.com/problems/keys-and-rooms/