C++s合并两个链表(牛客剑指offer)
来源:互联网 发布:北京地铁网络取票 编辑:程序博客网 时间:2024/06/01 07:25
/////这段代码不忍直视,想不通这样在牛客剑指offer上都可以通过.。#include <iostream>using namespace std;struct ListNode{int val;struct ListNode *next;ListNode(int x):val(x),next(NULL){}};void show(ListNode *root);class Solution {public:ListNode* Merge(ListNode* pHead1, ListNode* pHead2){ ListNode *root=NULL; ListNode *p = pHead1; ListNode *q = pHead2; ListNode *m = NULL; ListNode *n = NULL; if(p==NULL)return q; if(q==NULL)return p; while(p!=NULL && q!=NULL) { if(p->val>q->val) { n=q->next; if(root==NULL) { root = new ListNode(q->val); } else { ListNode *k = root;//m=NULL; ListNode *s = new ListNode(q->val); while(k!=NULL) { m=k; k=k->next; } if(m!=NULL) { m->next=s;//m=s; } } delete q; q=n; } else { n=p->next; if(root==NULL) { root = new ListNode(p->val); } else {//m=NULL; ListNode *k = root; ListNode *s = new ListNode(p->val); while(k!=NULL) { m=k; k=k->next; } if(m!=NULL) { m->next=s;//m=s; } } delete p; p=n; } }m=root; if(q==NULL) { while(m!=NULL){n=m;m=m->next;}n->next=p; } if(p==NULL) { while(m!=NULL){n=m;m=m->next;}n->next=q; } //show(root);return root; }};void show(ListNode *root){ListNode *p = root;while(p!=NULL){cout<<p->val<<" ";p=p->next;}cout<<endl;}int main(){ListNode *p1 = new ListNode(1);ListNode *p2 = new ListNode(3);ListNode *p3 = new ListNode(5);p1->next = p2;p2->next = p3;show(p1);ListNode *p4 = new ListNode(2);ListNode *p5 = new ListNode(4);ListNode *p6 = new ListNode(6);p4->next = p5;p5->next = p6;show(p4);Solution sl;ListNode* n = sl.Merge(p1,p4);show(n);return 0;}
1 0
- C++s合并两个链表(牛客剑指offer)
- 剑指offer--合并两个递增链表
- 剑指offer----合并两个有序链表
- 《剑指offer》合并两个有序链表
- 剑指offer-合并两个有序链表
- 剑指offer题解C++【16】合并两个排序的链表
- 剑指offer 17-合并两个排序表的链表
- 剑指Offer之合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 【剑指offer】Q17:合并两个排序的链表
- 剑指offer-17:合并两个排序的链表
- 剑指offer系列源码-合并两个排序的链表
- 剑指offer 面试题17 合并两个有序链表
- 剑指offer--合并两个排序的链表
- 剑指offer之合并两个排序的链表
- 剑指Offer之 - 合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 创建推送证书 遇到 “此证书由未知颁发机构签名”
- sonar 代码质量管理
- JAVA 实现手机号码压缩,解压
- C 预处理指令 条件编译
- vim小知识
- C++s合并两个链表(牛客剑指offer)
- CMS 管理系统使用
- 游程编码算法
- 如何在Android开发中让你的代码更有效率
- iOS开发学习之触摸事件和手势识别(转
- log4j和web.xml配置webAppRootKey 的问题
- js 中 String.replace() 的使用
- JavaScript中常见的数组操作函数及用法
- mybatis中的#和$的区别