Leetcode21--->Merge Two Sorted Lists(合並兩個排序的單鏈表)


題目: 給出兩個排序的單鏈表,合並兩個單鏈表,返回合並后的結果;

解題思路:

解法還是很簡單的,但是需要注意以下幾點:

1.  如果兩個鏈表都空,則返回null;

2.  如果鏈表1空,則返回鏈表2的頭節點;反之,如果鏈表2為空,則返回鏈表1的頭節點;

3.  兩個鏈表都不空的情況下:

   比較兩個鏈表的頭節點的值,哪個小,則新鏈表的頭節點為哪個;

  舉例:l1: 1->3->5; l2:2->4->6->7;則:head = l1的頭節點,此時head.next = l1.next 或者 l2

代碼如下:

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) { val = x; }
 7  * }
 8  */
 9 public class Solution {
10     public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
11         if(l1 == null && l2 == null)
12             return null;
13         if(l1 == null)
14             return l2;
15         if(l2 == null)
16             return l1;
17         ListNode head = null;
18         if(l1.val > l2.val)
19         {
20              head = l2;
21              head.next = mergeTwoLists(l1, l2.next);
22         }
23         else
24         {
25              head = l1;
26              head.next = mergeTwoLists(l1.next, l2);
27         }
28         return head;
29     }
30 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM