链表合并
来源:互联网 发布:轻松赚钱的软件 编辑:程序博客网 时间:2024/06/02 06:15
#include <cstdio>#include <vector>struct Node{ Node *next; int val;};Node* merge(Node* a, Node* b){ Node *h = a, *p, *q; while (b) { for (p = h; p && p->val < b->val; q = p, p = p->next); if (p == h) { q = b->next; b->next = p; h = b; b = q; continue; } else { a = q; } q = b; b = b->next; q->next = p; a->next = q; } return h;}Node* creatList(int start, int end, int step){ Node* a = new Node(), *p; a->next = NULL; a->val = start; p = a; for (int i = start + step; i <= end; i += step) { Node *q = new Node(); q->next = NULL; q->val = i; p->next = q; p = p->next; } p->next = NULL; return a;}void print(Node *a){ std::vector<int> v; while (a) { v.push_back(a->val); a = a->next; } for (size_t i = 0; i < v.size(); i++) { printf("%d", v[i]); if (i != v.size() - 1) printf("->"); } printf("\n");}int main(){ Node* a = creatList(2, 10, 2); Node *b = creatList(1, 9, 2); print(a); print(b); Node* c = merge(a, b); print(c); return 0;}
阅读全文
0 0
- 有序链表合并&有序数组合并
- 有序链表合并
- C++合并链表
- 合并链表操作
- 合并两个链表
- 合并有序链表
- 链表的合并
- 合并链表
- 链表合并算法
- 合并有序链表
- 合并有序链表
- 合并有序链表
- 有序链表合并
- 链表合并
- 合并有序链表
- 合并链表
- 链表合并算法
- 合并有序链表
- java反射获取当前对象属性的值
- js中几种实用的跨域方法原理详解
- java 分布式锁方案
- 第三方账号登录------微信
- java 虚拟机
- 链表合并
- web前端的发展?
- 办公技巧:怎样才能够压缩过大的PDF文件
- 基于深度学习的视频识别方法概览
- mui 顶部选项卡可左右切换报错的问题
- centos7装linux翻译软件
- OpenStack Pike版本neutron组件新特性
- 1022:斐波那契数列
- 想成为机器学习工程师?自学如何入门?