用字典法确定重复个数
删除链表中重复的结点
http://www.nowcoder.com/questionTerminal/fc533c45b73a41b0b44ccba763f866ef
class Solution {
public:
ListNode* deleteDuplication(ListNode* pHead)
{
if (!pHead) return nullptr;
vector<ListNode*> v;
while (pHead) {
v.push_back(pHead);
pHead = pHead->next;
}
vector<int>a(1000000,0); for(int i=0;i<v.size();i++){ a[v[i]->val]++; } ListNode *cur =v[0] ; for (int i=1;i<v.size();i++) { // 构造链表 if(a[v[i]->val]==1) { cur->next = v[i]; // 当前节点的下一个指针指向下一个节点 cur = cur->next;} } // 当前节点后移} cur->next = nullptr; // 切记最后一个节点的下一个指针指向nullptr if(a[v[0]->val]==1) return v[0]; else return v[0]->next; }
};