标签:
题目:
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.
思路:
public class MergeTwoSortedLists {
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode h1 = new ListNode(0), h2 = h1;
while(l1!=null && l2!=null){
if(l1.val < l2.val){
h1.next = l1;
l1 = l1.next;
}else{
h1.next = l2;
l2 = l2.next;
}
h1 = h1.next;
}
if(l1 == null){
h1.next = l2;
}
if(l2 == null){
h1.next = l1;
}
return h2.next;
}
}//递归解法,头指针每次指向两个列表中最小的节点,然后递归
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null)
return l2;
if(l2 == null)
return l1;
ListNode h;
if(l1.val < l2.val){
h = l1;
h.next = mergeTwoLists(l1.next, l2);
}else{
h = l2;
h.next = mergeTwoLists(l1, l2.next);
}
return h;
}LeetCode | #21 Merge Two Sorted Lists
标签:
原文地址:http://blog.csdn.net/allhaillouis/article/details/43115993