版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kexiii/article/details/78248592
class Solution
{
private:
unordered_map<string,multiset<string>> connections;
vector<string> res;
void dfs(string cur)
{
while(!connections[cur].empty())
{
auto next_to_visit = *connections[cur].begin();
connections[cur].erase(connections[cur].begin());
dfs(next_to_visit);
}
res.push_back(cur);
}
public:
vector<string> findItinerary(vector<pair<string, string>> tickets)
{
for(const auto& ticket : tickets )
{
connections[ticket.first].insert(ticket.second);
}
dfs("JFK");
reverse(res.begin(),res.end());
return res;
}
};