您的位置:首页 > 编程语言 > Java开发

21. Merge Two Sorted Lists--java

2016-04-26 13:00 651 查看
/**

* 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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: