/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null)
return l2;
if(l2==null)
return l1;
ListNode res,tmp;
res=tmp=new ListNode(0);
while(l1!=null && l2!=null){
ListNode myTmp=null; //新建一个节点,然后让指针指向该节点
if(l1.val<l2.val){
myTmp=new ListNode(l1.val);
l1=l1.next;
}
else{
myTmp=new ListNode(l2.val);
l2=l2.next;
}
tmp.next=myTmp;
tmp=tmp.next;
}
while(l1!=null){
ListNode myTmp=null;
myTmp=new ListNode(l1.val);
l1=l1.next;
tmp.next=myTmp;
tmp=tmp.next;
}
while(l2!=null){
ListNode myTmp=null;
myTmp=new ListNode(l2.val);
l2=l2.next;
tmp.next=myTmp;
tmp=tmp.next;
}
return res.next;
}
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null)
return l2;
if(l2==null)
return l1;
ListNode res,tmp;
res=tmp=new ListNode(0);
while(l1!=null && l2!=null){
ListNode myTmp=null; //新建一个节点,然后让指针指向该节点
if(l1.val<l2.val){
myTmp=new ListNode(l1.val);
l1=l1.next;
}
else{
myTmp=new ListNode(l2.val);
l2=l2.next;
}
tmp.next=myTmp;
tmp=tmp.next;
}
while(l1!=null){
ListNode myTmp=null;
myTmp=new ListNode(l1.val);
l1=l1.next;
tmp.next=myTmp;
tmp=tmp.next;
}
while(l2!=null){
ListNode myTmp=null;
myTmp=new ListNode(l2.val);
l2=l2.next;
tmp.next=myTmp;
tmp=tmp.next;
}
return res.next;
}
}
链表操作的关键在于链接不断。
如:
ListNode head;
ListNode list=head;
list=null;
return head;
此时返回的还是原来的链表,没有任何改变。
list.next=list.next.next;
return head;
此时返回的是删掉了第二个节点的链表。(24、19、360)