BFS
var ladderLength = function(beginWord, endWord, wordList) {
let dict=new Set(wordList);
if(!dict.has(endWord)) return 0;
queue=[];
queue.push(beginWord);
let len=beginWord.length;
var depth=0;
while(queue.length>0){
depth++;
var size=queue.length;
while(size-->0){
var head=queue.shift();
for(var i=0;i<len;i++){
for(var j=97;j<=122;j++){
var temp=head.substring(0,i)+String.fromCharCode(j)+head.substr(i+1);
if(temp==endWord) return depth+1;
if(!dict.has(temp)) continue;
dict.delete(temp);
queue.push(temp);
}
}
}
}
return 0;
};