Restore the Array From Adjacent Pairs(C++从相邻元素对还原数组)

解题思路:

(1)dfs

class Solution {
public:
    vector restoreArray(vector>& adjacentPairs) {
        unordered_map mp;
        unordered_map>mt;
        for(int i=0;isecond==1) start=it->first;
            it->second=0;
        }
        
        vector v(1,start);
        mp[start]=1;
        
        while((mt[start].size()==1 && mp[mt[start][0]]==0) || (mp[mt[start][0]]==0 || mp[mt[start][0]]==1)) {
            if(mp[mt[start][0]]==0) {
                v.push_back(mt[start][0]);
                mp[mt[start][0]]=1;
                start=mt[start][0];
            } else if(mt[start].size()==1) return v;
            else {
                v.push_back(mt[start][1]);
                mp[mt[start][1]]=1;
                start=mt[start][1];
            }
        }
        return v;
    }
};

 

你可能感兴趣的:(C++,LeetCode,leetcode,c++,dfs)