class Solution { public: struct node{ string word; int dist; }; int ladderLength(string beginWord, string endWord, vector& wordList) { unordered_set validWordList(wordList.begin(), wordList.end()); unordered_set visited; queue q; q.push({beginWord,1}); visited.insert(beginWord); while(!q.empty()){ node t = q.front(); q.pop(); if(t.word == endWord){ return t.dist; } for(int i=0;i