題目描述:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLykTO0UzN0kDM5ATMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
代碼如下(附有解析):
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode ret=new ListNode(0);
ListNode head=ret;
//若l1和l2都為空,直接傳回null
if(l1==null&&l2==null){
return null;
}
//若兩個節點都為空時,循環結束
while(l1!=null||l2!=null){
//如果l1不為空,l2為空或者l2的值大于l1則連接配接l1該節點
if(l1!=null&&(l2==null||l2.val>l1.val)){
ret.next=l1;
l1=l1.next;
}else{ //l2不為空,l1為空或者l1的值大于l2則連接配接l2該節點
ret.next=l2;
l2=l2.next;
}
//更新ret
ret=ret.next;
//傳回所記錄的頭節點
return head.next;
}
}