leetcode刷题日记——Merge Two Sorted Lists
2015-12-18 12:56
603 查看
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
问题分析:题目所要达到的目标就是将二个已经排序的链表进行合并。解题思路就是先分别比较二个链表,将最小元素一次串起来,然后若有某一链表到尾部,则将该链表接在新链表的末尾即可。实现代码如下:
问题分析:题目所要达到的目标就是将二个已经排序的链表进行合并。解题思路就是先分别比较二个链表,将最小元素一次串起来,然后若有某一链表到尾部,则将该链表接在新链表的末尾即可。实现代码如下:
/** * 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==NULL&&l2==NULL) return NULL; else if(l1==NULL) return l2; else if(l2==NULL) return l1; else{ ListNode *p=l1,*q=l2,*head=NULL,*m=NULL; while(p&&q){ if(p->val<=q->val){ if(head==NULL){ m=p; p=p->next; m->next=NULL; head=m; } else{ m->next=p; p=p->next; m=m->next; m->next=NULL; } } else { if(head==NULL){ m=q; q=q->next; m->next=NULL; head=m; } else{ m->next=q; q=q->next; m=m->next; m->next=NULL; } } } if(p){ m->next=p; } else if(q){ m->next=q; } return head; } } };
相关文章推荐
- CodeForces 589 J Cleaner Robot
- 103,使用typedef为block数据类型起别名
- ios 除了po命令之外的调试命令
- vim自动补全:go
- 第10周知原理
- 经典源码,近乎的安装说明。
- 暗时间
- Python 手记 - 8
- html5 meta标签属性整理
- Centos 装系统 配置网卡,校准时间
- VisualStudio之Run-Time Library选项
- myEclipse项目转成Eclipse开发
- HDOJ 1175 连连看
- Android创建旋转箭头-不恢复原位-旋转动画的使用
- 常用的正则表达式
- CentOS 7安装配置Samba服务器
- php http 缓存(客户端缓存)
- android studio module 如何生成jar包并进行混淆
- CentOS 7 安装Mono 和 MonoDevelop
- HADOOP的那些坑