机器学习之路漫漫
MLEW(Maching Learning & Endless Way)

导航

 

思路:指针p用于串联怎个链表,比较两个指针的大小,连接较小的一个。如果一个链表到达链尾,连接另外一个链表余下来的所以节点。

 1     public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
 2         ListNode head;
 3         ListNode p = null;
 4         //判断初始链表是否为空
 5         if (l1 == null && l2 == null) {
 6             return null;
 7         } 
 8         if(l1==null){
 9             return l2;
10         }
11         if(l2==null){
12             return l1;
13         }
14         // 将最小的数作为head
15         if (l1.val <= l2.val) {
16             head = l1;
17             l1=l1.next;
18         } else {
19             head=l2;
20             l2=l2.next;
21         }
22         p=head;
23         // 比较两个链表大小,连接较小的一个
24         while (l1!= null && l2 != null) {
25             if(l1.val<=l2.val){
26                 p.next=l1;
27                 p=l1;
28                 l1=l1.next;
29             }else{
30                 p.next=l2;
31                 p=l2;
32                 l2=l2.next;
33             }
34         }
35         if(l1==null){    //如果l1到结尾,连接l2剩余部分
36             while(l2!=null){
37                 p.next=l2;
38                 p=l2;
39                 l2=l2.next;
40             }
41         }else{    //否则连接l1剩余部分
42             while(l1!=null){
43                 p.next=l1;
44                 p=l1;
45                 l1=l1.next;
46             }
47         }
48         return head;
49     }

 

posted on 2015-11-24 00:46  suchang  阅读(128)  评论(0编辑  收藏  举报