public class MergeTwoLists {
public static class ListNode {
int val
;
ListNode next
;
ListNode(int x
) {
this.val
= x
;
}
public int getData() {
return this.val
;
}
}
public static ListNode
mergeTwoLists(ListNode l1
, ListNode l2
) {
if (l1
== null
) {
return l2
;
}
if (l2
== null
) {
return l1
;
}
if (l1
.val
< l2
.val
) {
l1
.next
= mergeTwoLists(l1
.next
, l2
);
return l1
;
} else {
l2
.next
= mergeTwoLists(l1
, l2
.next
);
return l2
;
}
}
public static ListNode
mergeTwoListNode(ListNode l1
, ListNode l2
) {
ListNode p1
= l1
;
ListNode p2
= l2
;
ListNode p3
= new ListNode(0);
ListNode p
= p3
;
while (true) {
if (p1
== null
&& p2
== null
) {
break;
} else if (p1
== null
&& p2
!= null
) {
p
.next
= p2
;
break;
} else if (p1
!= null
&& p2
== null
) {
p
.next
= p1
;
break;
} else if (p1
.val
<= p2
.val
) {
p
.next
= p1
;
p1
= p1
.next
;
} else {
p
.next
= p2
;
p2
= p2
.next
;
}
p
= p
.next
;
}
return p3
.next
;
}
public static void print(ListNode listNode
) {
ListNode curNode
= listNode
;
while (curNode
.next
!= null
) {
System
.out
.print(curNode
.val
+ "->");
curNode
= curNode
.next
;
}
System
.out
.print(curNode
.val
);
System
.out
.println();
}
public static void main(String
[] args
) {
ListNode listNode1
= new ListNode(1);
ListNode listNode2
= new ListNode(2);
ListNode listNode3
= new ListNode(5);
listNode1
.next
= listNode2
;
listNode2
.next
= listNode3
;
ListNode listNode4
= new ListNode(1);
ListNode listNode5
= new ListNode(3);
ListNode listNode6
= new ListNode(4);
listNode4
.next
= listNode5
;
listNode5
.next
= listNode6
;
ListNode listNode
= mergeTwoListNode(listNode1
, listNode4
);
print(listNode
);
}
}
转载请注明原文地址:https://tech.qufami.com/read-25550.html