
- #include
- #include
- using namespace std;
- struct LinkNode//链表结构体
- {
- int val;
- LinkNode *next;
- LinkNode(int val):val(val),next(nullptr){}
- };
- LinkNode *_dummyHead= new LinkNode(0);//头节点
- void show(LinkNode *head)//展示
- {
- LinkNode *cur=head;//代替头节点,方便遍历
- while(cur!=nullptr)
- {
- cout<
val<<" "; - cur=cur->next;
- }
- cout<
-
- }
-
- LinkNode* reverse(LinkNode *head)//反致链表
- {
- LinkNode *temp;
- LinkNode *per=nullptr;//前置节点,挺不好想,需要temp,per,cur
- LinkNode *cur=head;
- while(cur)
- {
- temp=cur->next;//保存下一个节点
- cur->next=per;//开始反制了,先节点指向前节点
- per=cur;
- cur=temp;
- }
- return per;
- }
-
- int main()
- {
- int n, num;
-
- while(cin>>n)
- {
- if(n==0)
- {
- cout<<"list is empty"<
- continue;
- }
-
- LinkNode *cur=_dummyHead;//此处定义应在循环里面
- while(n--)
- {
- cin>>num;
- LinkNode *newnode= new LinkNode(num);
- cur->next=newnode;
- cur=cur->next;
- }
- show(_dummyHead->next);
- show(reverse(_dummyHead->next));
- }
-
-
-
-
- return 0;
- }
下面这道题,希望你手到擒来 ,两题结构上基本一致,除细微删除输出,可以建立数组,将不重复数字加入,每次判断是否有输出资格,用flag来标记,这里我为什么使用vector容器,因为之前建立的固定数组,总是判定为可能存在数字越界问题,主要因为输入的数组大小也不固定。num.push_back将数字加入到容器尾部,不影响输出,num数组只作为重复性检查
- #include
- #include
- using namespace std;
- struct linknode {
- int val;
- linknode* next;
- linknode(int val) :val(val), next(NULL) {}
- };
- linknode* dummyhead = new linknode(0);
- void deletemult(linknode* head)
- {
- linknode* cur = head;
- vector<int> num;
- int count = 0;
- while (cur != nullptr)
- {
- int flag = 1;
- for (int j = 0; j < count; j++)
- {
- if (num[j] == cur->val)
- {
- flag = 0;
- break;
- }
- }
- if (flag)
- {
- //cout<
val<<" "; - num.push_back(cur->val);
- cout <
val << " "; - count++;
- }
- cur = cur->next;
- }
- cout << endl;
-
- }
- void show(linknode* head)
- {
- linknode* cur = head;
- while (cur != NULL)
- {
- cout << cur->val << " ";
- cur = cur->next;
- }
- cout << endl;
- }
-
- int main()
- {
- int n, m;
- while (cin >> n)
- {
- if (n == 0)
- {
- cout << "list is empty" << endl;
- continue;
- }
- linknode* cur = dummyhead;
- while (n--)
- {
- cin >> m;
- linknode* newnode = new linknode(m);
- cur->next = newnode;
- cur = cur->next;
- }
- show(dummyhead->next);
- deletemult(dummyhead->next);
- }
- return 0;
- }
-
相关阅读:
关于yolo7和gpu
SparkStreaming的foreachPartition理解
使用QEMU+GDB调试操作系统代码
高通平台Android 蓝牙调试和配置手册-- HCI Transport Failures: Command Timeout
K8s中的RBAC(Role-Based Access Control)
浔川画板v5.0——浔川python科技社
django项目创建和启动,静态资源配置 django模板遍历数组和对象 if forloop
java.lang.Float类下floatValue()方法具有什么功能呢?
mybatis 源码本地编译
Redis Twemproxy 集群,水平扩展 ,扩容方案
-
原文地址:https://blog.csdn.net/m0_62512076/article/details/133000431