简单21 合并两个有序链表
package leetcode;
class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null) {
return l2;
}
else if(l2==null) {
return l1;
}
else {
if(l1.val>l2.val) {
ListNode temp=l1;
l1=l2;
l2=temp;
}
ListNode l=l1;
ListNode p=l1;
// ListNode q=l2;
while((l1!=null)&&(l2!=null)) {
if(l1.val<=l2.val) {
p=l1;
l1=l1.next;
}
p.next=l2;
p=p.next;
l2=l2.next;
p.next=l1;
}
if(l2!=null) {
p.next=l2;
}
return l;
}
}
public static void main(String[] args) {
Solution solution=new Solution();
// String s="[[]]() }{()}";
ListNode l1=new ListNode(1);
l1.next=new ListNode(2);
l1.next.next=new ListNode(4);
ListNode l2=new ListNode(1);
l2.next=new ListNode(3);
l2.next.next=new ListNode(4);
System.out.println(solution.mergeTwoLists(l1, l2));
}
}
以上是代码 但是运行报错 会时间超时 让翔哥帮我找bug 好难啊 我就是最菜的
笨蛋 结果是运行时候粘多了一行 笨死了!
然后有一点小问题
if(l1.val<=l2.val) {
p=l1;
l1=l1.next;
}
这里用if 会有形如 5和1 2 4链表的错误
用while会有空指针报错 然后只需要加特判

浙公网安备 33010602011771号