(java)Merge Two Sorted Lists
2015-11-18 18:31
441 查看
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.
思路:首先创建一个空链表l3,如果比较l1和l2的大小,如果l1.val>l2.val,则将l2,链接到l3上,将l2向后移一个,否则就相反
代码如下(已通过leetcode)
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null) return l2;
if(l2==null) return l1;
ListNode p=l1;
ListNode q=l2;
ListNode a;
if(p.val>q.val) {
a=q;
q=q.next;
} else {
a=p;
p=p.next;
}
ListNode ans=a;
while(p!=null && q!=null) {
if(p.val>q.val) {
a.next=q;
q=q.next;
a=a.next;
} else {
a.next=p;
p=p.next;
a=a.next;
}
}
while(p!=null) {
a.next=p;
p=p.next;
a=a.next;
}
while(q!=null) {
a.next=q;
q=q.next;
a=a.next;
}
return ans;
}
}
two lists.
思路:首先创建一个空链表l3,如果比较l1和l2的大小,如果l1.val>l2.val,则将l2,链接到l3上,将l2向后移一个,否则就相反
代码如下(已通过leetcode)
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null) return l2;
if(l2==null) return l1;
ListNode p=l1;
ListNode q=l2;
ListNode a;
if(p.val>q.val) {
a=q;
q=q.next;
} else {
a=p;
p=p.next;
}
ListNode ans=a;
while(p!=null && q!=null) {
if(p.val>q.val) {
a.next=q;
q=q.next;
a=a.next;
} else {
a.next=p;
p=p.next;
a=a.next;
}
}
while(p!=null) {
a.next=p;
p=p.next;
a=a.next;
}
while(q!=null) {
a.next=q;
q=q.next;
a=a.next;
}
return ans;
}
}
相关文章推荐
- SpringMVC 之 数据验证
- 最新 Struts2 2.3.15 视频教程
- javaWeb项目之图书管理系统(附视频讲解)
- java文件导入功能的实现
- java实现PlayFair密码加解密算法
- eclipse中打开jsp 页面就卡顿
- Java 可变参数,快速学习教程
- Java面向对象编程学习
- 阿里云服务器ubuntu安装java运行环境
- spring_security_3.0.1中文参考文档PartII结构和实现
- 如何解决MyEclipse过期问题
- response.sendRedirect 报 java.lang.IllegalStateException 异常的解决思路
- 如何删除Eclipse里某个工作空间?
- java 反射调用支付SDK
- Spring整合mybatis完整项目
- JDK常用工具集——jps
- Eclipse中Outline里各种图标的含义
- java ftp工具类
- java换行
- java实现计算器