1. BFS搜索
(1)维护一个可到达的单词列表,初始化时单词列表中只有beginWord。
(2)如果可到达单词表不为空,遍历此单词列表中的每个单词,依次对单词中每个字符做变换(包括字符本身,共26种变换)。
(a)如果在变换过程中出现了endWord,搜索结束。
(b)对变换出的单词,如果wordList中存在此单词,从wordList中删除,并加入新生成的单词列表。
(3)遍历完后,用新的单词列表替换旧的可到达单词表。
2. 双向BFS搜索
分别从beginWord和endWord开始生成两个可到达单词表,加快搜索速度,如果两个单词表中出现相同单词时,搜索结束。