30
30
package _126_WordLadderII ;
31
31
32
32
import java .util .ArrayList ;
33
- import java .util .Arrays ;
34
33
import java .util .Collections ;
35
34
import java .util .HashMap ;
36
35
import java .util .HashSet ;
@@ -52,11 +51,6 @@ public List<List<String>> findLadders(String start, String end, Set<String> dict
52
51
53
52
List <List <String >>result =new ArrayList <>();
54
53
55
- if (start .equals (end )) {
56
- result .add (Arrays .asList (start ,end ));
57
- return result ;
58
- }
59
-
60
54
// use set for current level instead of queue to avoid calculating ladder for duplicated word
61
55
Set <String >cur =new HashSet <>();
62
56
Set <String >visited =new HashSet <>();
@@ -106,6 +100,9 @@ public List<List<String>> findLadders(String start, String end, Set<String> dict
106
100
private void dfs (String start ,String end ,List <String >path ,Map <String ,List <String >>fatherMap ,List <List <String >>result ) {
107
101
path .add (end );
108
102
if (end .equals (start )) {
103
+ if (path .size () ==1 ) {
104
+ path .add (start );
105
+ }
109
106
result .add (new ArrayList <>(path ));
110
107
Collections .reverse (result .get (result .size () -1 ));
111
108
}else {