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.
比较简单,30分钟一次AC,基本的链表合并,题目中没有陷阱。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode current1 = l1;
ListNode current2 = l2;
ListNode root = new ListNode(0);
ListNode current = root;
if(l1==null && l2==null)
return null;
while(current1 !=null || current2 !=null){
if(current1 !=null && current2 == null){
ListNode newNode = new ListNode(current1.val);
current.next = newNode;
current = current.next;
current1 = current1.next;
}
else if(current1 == null && current2 != null){
ListNode newNode = new ListNode(current2.val);
current.next = newNode;
current = current.next;
current2 = current2.next;
}
else if(current1.val <= current2.val){
ListNode newNode = new ListNode(current1.val);
current.next = newNode;
current = current.next;
current1 = current1.next;
}
else if(current2.val < current1.val){
ListNode newNode = new ListNode(current2.val);
current.next = newNode;
current = current.next;
current2 = current2.next;
}
}
return root.next;
}
}