Leetcode 21 Merge Two Sorted Lists 链表
2016-03-01 16:36
295 查看
合并两个已排序的链表,考到烂得不能再烂的经典题,但是很多人写这段代码会有这样或那样的问题
这里我给出了我的C++算法实现
这里我给出了我的C++算法实现
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 && !l2) return l1; if(l2 && !l1) return l2; if( !l2 && !l1) return NULL; //保证所有列表不为空 ListNode* t1 = l1; ListNode* t2 = l2; ListNode* t = NULL; if(t1->val < t2->val){ //确定表头t是l1还是l2 t = t1; t1 = t1->next; } else{ t = t2; t2 = t2->next; } for(;t1&&t2; t = t->next){//确定表头t的下一个元素 if(t1->val < t2->val){ t->next = t1; t1 = t1->next; } else{ t->next = t2; t2 = t2->next; } } if(t1){//t1不为空,将l1剩余部分插入到t后 t->next = t1; } if(t2){//t2不为空,将l2剩余部分插入到t后 t->next = t2; } if(l1->val < l2->val) return l1; else return l2;//确定表头 } };
相关文章推荐
- 2015 年最受 Linux 爱好者欢迎的软硬件大盘点
- Salesforce开发工具之Metaforce - 全局元数据搜索
- mysql+uwsgi+django+nginx部署记录
- 硕士论文开题前的准备
- POJ 1091 跳蚤(数论+容斥)
- ubuntu 固定ip
- html入门
- Hibernate核心接口学习
- c语言的结构体详解
- Java中的Collection和Map(四)--Set体系
- PHP 调用Oracle存储过程
- 【云计算】Docker云平台—Docker基础
- 动态显示和隐藏状态栏
- Android产生圆角图片Bitmap
- 详解Wondows下Node.js使用MongoDB的环境配置
- 英国雕塑家获特殊颜料专利
- Linux环境变量的设置
- 事件分发机制
- 如何在 visio 2013 中插入数学公式
- Unix Study之--P5光盘安装AIX6.1全实录