careercup2.1

来源:互联网 发布:mysql降序 编辑:程序博客网 时间:2024/06/13 10:23

熟悉链表操作。

/*Write code to remove duplicates from an unsorted linked list FOLLOW UPHow would you solve this problem if a temporary buffer is not allowed?*/#include <iostream>using namespace std;class Node{public:int data;    Node* next;Node(){this->next = 0;}Node(int a):data(a),next(0){}};class LinkList{public:LinkList(){ head = new Node(-1);}LinkList(int ar[],int len){head = new Node(-1);Node*p = FindTail();for(int i = 0; i<len; i++)insertion(ar[i]);}Node* FindTail();Node* head;void insertion(int);Node* del(Node* i, Node*p);void checkredu();void print()const{Node* p = head->next; while(p){  cout<<p->data<<" ";  p = p->next;  }}};Node* LinkList::FindTail(){Node* p = head;while( p->next!= 0){p = p->next;}return p;}void LinkList::insertion(int k){Node* p = FindTail();p->next = new Node(k);}Node* LinkList::del(Node* i,Node*p){p->next = i->next;delete(i);return p->next;}void LinkList::checkredu(){Node* p = head->next;while(p){if(p->data == 67)p = p;Node* temp = p->next;Node* par = p;while(temp){while(temp && temp->data == p->data){  temp = del(temp,par);}if(!temp) break; //tail cutpar = temp;temp = temp->next;}p = p->next;}}int main(){int ar[]={1,3,5,67,8,9,45,78,9,33,12,3,5,4,67,67};LinkList ll(ar,16);ll.checkredu();ll.print();}


原创粉丝点击